我有以下内容:
class Foo:
def __init__(self, **kwargs):
print kwargs
settings = {foo:"bar"}
f = Foo(settings)
这会产生错误:
Traceback (most recent call last):
File "example.py", line 12, in <module>
settings = {foo:"bar"}
NameError: name 'foo' is not defined
如何将键/值args的dict正确传递给kwargs?
答案 0 :(得分:6)
f = Foo(**settings)
这适用于任何带有关键字参数的callable:
def foo(spam='eggs', bar=None):
return spam, bar
arguments = {'spam': 'ham', 'bar': 'baz'}
print foo(**arguments)
或者您可以使用关键字参数调用该函数:
f = Foo(foo="bar")
foo(spam='ham', bar='baz')
你的错误是无关的,你没有定义foo
,你可能想把它变成一个字符串:
settings = {'foo': 'bar'}