2017-03-17 70 views
-1

我正在嘗試編寫一個綁定計數器程序,但我遇到了變量'r'的問題。因爲在行中沒有'r':def callback(event,r):我遇到了一個名爲LocalBoundError的錯誤。我搜索了一下,發現我應該在def()中使用我的參數編寫。因此,我試過了。但它不起作用,因爲已經有一個參數,事件。你有什麼想法我應該做什麼?與事件和定義糾纏

from tkinter import * 

top = Tk()  
r = 0 

def callback(event,r):  
    r = r+1  
    print(r)  
    top.mainloop() 

top.bind("<Button-1>",callback,r)  
top.mainloop() 
+0

請修復代碼的格式。編輯器中有一些工具可以使這一切變得簡單。查找看起來像「{}」的按鈕。 –

+0

答案在我的問題和@furas評論中提到[link](http://stackoverflow.com/q/41800868/5722359)。 –

回答

1

使用拉姆達到額外的參數r傳遞給callback功能

top.bind("", lambda event: callback(event, r)) 

您可能還需要做出r一個global變量,使其功能後permenantly改變

+0

謝謝。它對我非常有幫助。 – antisycop

+0

完全沒問題:) –