【发布时间】:2018-06-30 11:03:45
【问题描述】:
Python 3.6
我正在使用tkinter 对游戏Mastermind 进行编程。但是,由于函数Check 中我的number1 的引用未解决,我感到很挣扎。
def Check(event):
number1 = number1.get()
number2 = str(number1)
def Enter(event):
number1 = StringVar()
entry_1 = Entry(window, textvariable = number1)
entry_1.grid(row=8, column=1, padx=10, pady=10)
entry_1.focus()
entry_1.bind("<Return>", Check)
这是我的错误信息:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:/Users/Colbach/Google Drive/Charlotte/Informatique/Projet/Mastermind.py", line 39, in Check
number1 = number1.get()
UnboundLocalError: local variable 'number1' referenced before assignment
【问题讨论】:
-
您能提供更多信息吗?主要是抛出的错误以及堆栈跟踪。你也可以给你的 python 和 tkinter 版本。我猜你的错误来自
number1.get()中未定义的number1 -
@CharlotteColbach 编辑您的问题并在其中添加错误消息并提供minimal reproducible example
-
您创建了一个局部变量
number1(等式左侧)。在等式的右侧,您尝试在定义此变量之前使用它。 -
要点:不能访问另一个函数中的局部变量,
-
我现在尝试用 for 循环替换我的 Enter 函数(所以现在该变量没有在另一个函数中定义)但它仍然无法正常工作:(
标签: python tkinter tkinter-entry