【发布时间】:2015-07-06 19:49:10
【问题描述】:
我正在尝试通过在 python 中增加一个变量来计算鼠标点击次数。
from tkinter import *
import serial, time
root = Tk()
ser = serial.Serial()
ser.baudrate=9600
ser.port=0
x = 0
def leftClix(event):
print("Left")
if x == 3:
exit(0)
else:
x=x+1
def rightClix(event):
print("Right")
def middleClix(event):
print("Middle")
frame = Frame(root, width=300, height=250)
frame.bind("<Button-1>", leftClix)
frame.bind("<Button-2>", middleClix)
frame.bind("<Button-3>", rightClix)
frame.pack()
root.mainloop()
在 PyCharm 中,x+1 中的“x”带有下划线注释:未解析的引用:
当我单击鼠标左键时,我得到“UnboundLocalError: local variable 'x' referenced before assignment”
这是什么意思?我之前分配的...所以我不明白。我尝试将 x 设为全局,但这并没有帮助。有人可以解释我在这里做错了什么吗?
【问题讨论】:
-
假设
x是本地的。将global x放入你的函数中,这样它就知道你的意思是一个全局变量。 -
当您说“尝试使 x 成为全局”时——尝试如何? 确切地,您将
global x声明放在哪里?它需要进入函数内部。 -
@khelwood 所说的 - 应该让它成为一个答案,以便它可以被接受