【问题标题】:PyCharm: Unresolved reference for StringVarPyCharm:StringVar 的未解析参考
【发布时间】: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


【解决方案1】:

我认为您可能混淆了两个变量名:

这个number1 = number1.get()应该是那个:number1 = entry1.get()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多