在函数的上下文中设置全局变量的值会引发 UnboundLocalError 吗?

2024-06-06 06:46:47 发布

您现在位置:Python中文网/ 问答频道 /正文

也许今天早上我的咖啡不够浓,但这种行为现在让我很困惑:

>>> a = 'foo'
>>> def func1():
...   print a
... 
>>> def func2():
...   print a
...   a = 'bar'
... 
>>> func1()
foo
>>> func2()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in func2
UnboundLocalError: local variable 'a' referenced before assignment

(请注意,print a语句引起func2()中的错误,而不是{}。)

有人能给我解释一下这是怎么回事吗?在


Tags: inmostfoodefstdinlinebarcall