2017-05-24 74 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行

注意,全局變量通常是一個壞主意。通常您應該根據需要將對象從例程傳遞到例程。