python 3.7
>>> exec('foobz = 3')
>>> print(foobz)
3
为什么上面的方法有效,而下面的方法无效?
>>>
def blah():
exec('foobz = 3')
print(foobz)
>>> ... ... ...
>>> blah()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in blah
NameError: name 'foobz' is not defined
我已经证实它不是由于间距引起的,我不清楚有什么区别
答案 0 :(得分:1)
这里回答了这个问题,但是当涉及到应用程序的范围和生命周期时,exec语句遵循不同的规则: