locals()。update(kwargs)无效

时间:2014-02-17 10:45:45

标签: python

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

为什么会这样?感谢。

1 个答案:

答案 0 :(得分:3)

locals()返回的字典是合同只读的。您无法动态地将变量添加到当前范围。