繁体   English   中英

如何正确地将键/值参数的字典传递给 kwargs?

[英]How to properly pass a dict of key/value args to kwargs?

我有以下几点:

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

如何将键/值参数的字典正确传递给 kwargs?

使用**kw调用约定

f = Foo(**settings)

这适用于任何采用关键字参数的可调用对象:

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'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM