NameError:未定义名称“questionTextOne”

时间:2017-05-24 16:34:01

标签: python tkinter

该变量显然没有定义,尽管已经使用过。代码为here

如您所见,我试图将变量声明为全局变量。

完整错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\matth\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__
    return self.func(*args)
  File "C:\Users\matth\OneDrive\Documents\Assesment.py", line 145, in incorrect
    unpackOne()
  File "C:\Users\matth\OneDrive\Documents\Assesment.py", line 173, in unpackOne
    questionTextOne.pack_forget()
NameError: name 'questionTextOne' is not defined

1 个答案:

答案 0 :(得分:1)

您已在questionTextOne中将unpackOne声明为全局,但没有其他范围与此相同。当unpackOne尝试使用questionTextOne的预先存在的值时,没有一个值。程序中使用相同变量名的唯一其他位置是ask(参见第38行),但ask将其保留为单独的变量。

如果您希望与该程序的其余部分共享,请告诉ask以区别方式共享它。插入

global questionTextOne

第26行。

请注意,全局变量通常是一个坏主意。您通常应该根据需要将对象从例程传递给例程。