class Foo(object):
def __init__(self, x):
self.bar(x=x)
def bar(self, **kwargs):
print kwargs
locals().update(kwargs)
print x
f = Foo(12)这似乎很明显,但它不起作用,第一个打印将输出{'x': 12},这是正确的,然而,我得到了这个错误:NameError: global name 'x' is not defined
为什么会发生这种情况?谢谢。
发布于 2014-02-17 19:07:13
根据约定,locals()返回的字典是只读的。不能将变量动态添加到当前作用域。
https://stackoverflow.com/questions/21826934
复制相似问题