【发布时间】:2018-03-14 00:40:31
【问题描述】:
我收到错误“在赋值之前引用了局部变量 'Xold'”。我不明白为什么我会收到错误,因为我在尝试使用它之前已经分配了有问题的变量。
def calculator (newX,newY):
global count
if count==0:
Xold = newX
Yold = newY
count+=1
print(Xold,Yold) #prints 97.9 which is correct.
else:
Xdistance = newX - Xold
Ydistance = newY - Yold
print(Xdistance,Ydistance)
parser()
顺便提一下,count 在代码开头设置为 0。
【问题讨论】:
-
是的,如果您输入 else 块,则不会定义
Xold和 Yold`。所以它会在任何时候出现这个错误count != 0 -
提示:函数中的所有变量都会在函数返回后立即被丢弃(或者当执行“落到函数的末尾”时)。
-
问题是
Xold和Yold是本地的,不是全局的,所以即使count是那么,一旦>0,错误就会上升 -
@Kevin 所以我需要将变量存储在别处?我只想将解析器的初始值存储在 Xold 和 Yold 中。
标签: python python-3.x