Аргументы в Python Pack? - PullRequest
       11

Аргументы в Python Pack?

2 голосов
/ 19 июля 2010

можно ли "упаковать" аргументы в python?У меня есть следующие функции в библиотеке, которые я не могу изменить (упрощенно):

def g(a,b=2):
    print a,b

def f(arg):
    g(arg)

Я могу сделать

o={'a':10,'b':20}
g(**o)
10 20

, но могу ли я / как мне пройти черезf?

Вот чего я не хочу:

f(**o)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() got an unexpected keyword argument 'a'

f(o)
{'a': 10, 'b': 20} 2

1 Ответ

2 голосов
/ 19 июля 2010

f должен принимать произвольные (позиционные и) аргументы ключевых слов:

def f(*args, **kwargs):
    g(*args, **kwargs)

Если вы не хотите, чтобы f принимал позиционные аргументы, пропустите часть *args.

...