2014-04-01 202 views
1

我試圖創建一個腳本,例如,當debugmode = 1時,您可以通過按LCD上的「UP」鍵打破腳本。另一方面,當debugmode = 0時,它會回到主菜單。不過,我得到這個錯誤:Python中的名稱錯誤,名稱未定義

NameError: name 'debugmode' is not defined 

這是debugmode設置:

if lcd.buttonPressed(lcd.LEFT): 
    lcd.clear() 
    lcd.message('Debug mode is enabled.') 
    sleep(3) 
    lcd.clear 
    debugmode = 1 
elif lcd.buttonPressed(lcd.RIGHT): 
    lcd.clear() 
    lcd.message('Debug mode is disabled.') 
    sleep(3) 
    lcd.clear 
    debugmode = 0 

而這正是debugmode被稱爲:

if debugmode == 1: 
    break 
else: 
    subprocess.Popen("/home/fakepath/mainmenu.py") 
    break 

UPDATE:伊格納西奧的回覆固定我的名字錯誤和kindall的評論解決了我的問題與未設置的變量。感謝Ignacio和kindall!

+0

您是否在設置之前調用它? –

+0

你是否在一個函數中設置了'debugmode',而它是一個全局變量?如果是這樣,你需要在你的函數中設置一個'全局調試模式'。 – kindall

+0

Kindall,那是問題所在。非常感謝! – Dsf190

回答

3

先綁定名稱,然後重新綁定它。

debugmode = 0 
if lcd.... 
    ... 
+0

我已經試過了,但是當debugmode在上面的腳本中設置爲1時,它不會被記錄,並且由於某種原因腳本仍然認爲debugmode等於0. – Dsf190

+1

這是一個完全不同的問題。 –

+0

那麼爲什麼腳本沒有設置debugmode的值呢? – Dsf190