Skip to main content
 首页 » 编程设计

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

2025年05月04日16www_RR

我有以下内容:

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 call convention :

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