dan*_*jar 3 python local-variables
这有效:
def foo():
locals().update({'bar': 12})
print(locals()['bar']) # 12
Run Code Online (Sandbox Code Playgroud)
这失败了:
def foo():
locals().update({'bar': 12})
bar = locals()['bar'] # KeyError: 'bar'
print(bar)
Run Code Online (Sandbox Code Playgroud)
小智 5
https://docs.python.org/3/library/functions.html#locals
注意不应修改此词典的内容; 更改可能不会影响解释器使用的本地和自由变量的值.
编辑:但如上所述,bar = 12当然有效:
>>> def foo():
... bar = 12
... bar_ = locals()["bar"]
... print(bar_)
...
...
>>> foo()
12
Run Code Online (Sandbox Code Playgroud)