与事件和定义纠缠

问题描述:

我正在尝试编写一个绑定计数器程序,但我遇到了变量'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)。 –

使用拉姆达到额外的参数r传递给callback功能

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

您可能还需要做出r一个global变量,使其功能后permenantly改变

+0

谢谢。它对我非常有帮助。 – antisycop

+0

完全没问题:) –