2

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
4

1 に答える 1

2

f任意の (位置および) キーワード引数を受け入れる必要があります。

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

f位置引数を受け入れたくない場合は、その*args部分を省略してください。

于 2010-07-19T08:27:40.937 に答える