【发布时间】:2018-01-22 19:17:39
【问题描述】:
我有两段代码:
def g(y):
print(x)
x = 5
g(x)
和
def h(y):
x = x + 1
x = 5
h(x)
第一段代码可以完美地打印“5”,而第二段代码返回:
UnboundLocalError: local variable 'x' referenced before assignment
这实际上是什么意思?它是否想说它在评估行x=5 之前尝试评估行x = x + 1?如果是这样,为什么第一段代码没有产生任何错误?它同样必须在x 被赋值之前评估print(x) 行。
我想我可能对函数的调用方式有误解。但我不知道我错了什么。
【问题讨论】:
-
这似乎是 stackoverflow.com/questions/48368402/… 的副本。
标签: python-3.x global-variables local-variables