为什么python的exec在函数中似乎不起作用?

时间:2019-08-21 22:02:44

标签: python exec

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

我已经证实它不是由于间距引起的,我不清楚有什么区别

1 个答案:

答案 0 :(得分:1)

这里回答了这个问题,但是当涉及到应用程序的范围和生命周期时,exec语句遵循不同的规则:

https://stackoverflow.com/a/45535337/6670005