2014-07-18 48 views
-1

當我運行此代碼時,出現此錯誤:UnboundLocalError:變量'clicks'被轉換爲賦值之前。不知道從這裏做什麼。如果有幫助,我正在運行python 2.7.5製作GUI的錯誤... UnboundLocalError:在分配之前轉換的變量'clicks'

from Tkinter import * 
from ttk import * 
clicks = 0 
def press(): 
     clicks += 1 

def displayclicks(): 
     print clicks 

root = Tk() 
root.title("Test GUI") 
root.geometry("200x100") 
app = Frame(root) 
app.grid() 
Label(app, text="press the button!").grid() 
clicks = 0 
x = Button(app, text="BUTTON", command=press) 
x.grid() 
y = Button(app, text="Print clicks", command=displayclicks) 
y.grid() 

root.mainloop() 
+0

這是你的全部代碼嗎?你的錯誤信息是否給你一個行號看? – BlackVegetable

+0

它正在嘗試'點擊+ = 1',這是迄今爲止我所有的代碼 – WaydeHall

回答

1

爲了更改全局變量,您需要明確地引用它。因爲你的方法press()也加入到了全局變量clicks,您需要使用global關鍵字來參考一下吧:

clicks = 0 

def press(): 
    global clicks # make sure I am referring to the global 
        # variable, since I am going to modify it. 
    clicks += 1 

在你的方法displayclicks()你沒有這樣做,因爲你只是簡單的打印值,而不是修改它。

+0

導入是一種奇怪的方式來描述這一點。 –

+0

「把它納入範圍」? –

+0

我忘了使用全局關鍵字。我認爲我需要在某個地方使用,但是您說使用它的方式不起作用。 – WaydeHall

相關問題