2017-05-24 75 views
-2

该变量显然未定义,尽管它已被使用。代码是hereNameError:name'questionTextOne'未定义

正如你所看到的,我试图将变量声明为全局变量。

完整的错误:

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

在外部范围内没有'questionTextOne'对象 –

+2

也提供[mcve](https://stackoverflow.com/help/mcve),并非所有的项目代码 –

+0

请不要链接到外部的代码现场。 –

回答

1

你在unpackOne声明questionTextOne作为全球性的,但没有其他范围的股票这一想法。当unpackOne尝试使用questionTextOne的预先存在的值时,不存在一个值。程序中唯一使用相同变量名称的其他位置是ask(请参见第38行),但ask将其保留为单独的变量。

如果您希望与程序的其余部分共享,请告知ask以分享它。插入

global questionTextOne 

在26行

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