[英]How to properly pass a dict of key/value args to kwargs?
I have the following:我有以下几点:
class Foo:
def __init__(self, **kwargs):
print kwargs
settings = {foo:"bar"}
f = Foo(settings)
This generates an error:这会产生一个错误:
Traceback (most recent call last):
File "example.py", line 12, in <module>
settings = {foo:"bar"}
NameError: name 'foo' is not defined
How do I properly pass a dict of key/value args to kwargs?如何将键/值参数的字典正确传递给 kwargs?
Use the**kw
call convention :使用**kw
调用约定:
f = Foo(**settings)
This works on any callable that takes keyword arguments:这适用于任何采用关键字参数的可调用对象:
def foo(spam='eggs', bar=None):
return spam, bar
arguments = {'spam': 'ham', 'bar': 'baz'}
print foo(**arguments)
or you could just call the function with keyword arguments:或者您可以使用关键字参数调用该函数:
f = Foo(foo="bar")
foo(spam='ham', bar='baz')
Your error is unrelated, you didn't define foo
, you probably meant to make that a string:您的错误无关,您没有定义foo
,您可能打算将其设为字符串:
settings = {'foo': 'bar'}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.