【发布时间】:2015-04-18 15:12:35
【问题描述】:
您好,我是 Python 的新手。在学习时,我遇到了下面的代码 sn-ps,因为我无法理解代码的行为。 这是第一种情况
#Case 1
x=1
def func():
x=5
print(x)
func()
5
这是第二种情况
#Case 2
x=1
def func():
print(x) #First print statement
x=5
print(x) #Second print statement
func()
UnboundLocalError: local variable 'x' referenced before assignment
这两种情况是相同的,只是第二种情况有一个额外的打印语句。为什么第二个 sn-p 的第一个 print 语句让 Python 抛出异常?
【问题讨论】:
-
我认为第二种情况下的第一个打印语句将打印全局变量 x 的值,即 1,第二个将打印本地 x 的值,即 5。顺便说一句,感谢您的回答。
-
谢谢西蒙!现在我明白了。
标签: python python-3.x