locals().update(kwargs)无效

won*_*ng2 7 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)
Run Code Online (Sandbox Code Playgroud)

这似乎很明显,但它不起作用,第一个打印输出{'x': 12},这是正确的,然而,我得到这个错误:NameError: global name 'x' is not defined

为什么会这样?谢谢.

sle*_*ica 3

返回的字典locals()根据合约是只读的。您无法将变量动态添加到当前作用域。