Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 与事件和定义作斗争_Python 3.x_Tkinter - Fatal编程技术网

Python 3.x 与事件和定义作斗争

Python 3.x 与事件和定义作斗争,python-3.x,tkinter,Python 3.x,Tkinter,我试图编写一个绑定计数器程序,但变量“r”有问题。因为在:def callback(event,r)行中没有'r',我遇到了一个称为LocalBoundError的错误。我搜索了一下,了解到应该使用def()编写参数。因此,我试过了。但它不起作用,因为已经有一个参数event。你知道我该怎么做吗 from tkinter import * top = Tk() r = 0 def callback(event,r): r = r+1 print(r)

我试图编写一个绑定计数器程序,但变量“r”有问题。因为在:def callback(event,r)行中没有'r',我遇到了一个称为LocalBoundError的错误。我搜索了一下,了解到应该使用def()编写参数。因此,我试过了。但它不起作用,因为已经有一个参数event。你知道我该怎么做吗

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()
从tkinter导入*
top=Tk()
r=0
def回调(事件,r):
r=r+1
印刷品(r)
top.mainloop()
top.bind(“,回调,r)
top.mainloop()

使用lambda将额外的参数
r
传递给
回调
函数

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

您可能还需要将
r
设置为
global
变量,以便它在函数执行后永久更改

请修改代码的格式。编辑器中有一些工具可以简化这一过程。查找类似于
{}
的按钮。答案在我的问题和@furas注释中提到。一点问题也没有:)