我收到了错误"本地变量' 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。
答案 0 :(得分:2)
您的else
后卫正在先执行,因此未分配Xold
。即使Xold出现在上面的一行中,它也在一个未被执行的块中。
执行的步骤是:
calculator(x, y)
if count == 0 # False
else:
Xdistance = newX - Xold # Xold is not defined yet
您需要在if子句之外使用合理变量来定义它。
如果你想要聪明,你可以做这样的事情
count = 0
def calculator (newX,newY):
global count
if count==0:
calculator.Xold = newX
calculator.Yold = newY
count+=1
print(calculator.Xold,calculator.Yold) #prints 97.9 which is correct.
else:
...