为什么要使用';小部件';在python回调函数(Gtk)中,哪个只在标准输出上打印?

为什么要使用';小部件';在python回调函数(Gtk)中,哪个只在标准输出上打印?,python,callback,gtk,pygobject,gobject-introspection,Python,Callback,Gtk,Pygobject,Gobject Introspection,我正在学习Gtk编程与python从。但是我不明白在下面的回调定义中使用widget关键字的原因是什么?有人能解释一下它的作用吗 def on_button_clicked(self, widget): print("Hello World") 单击按钮时,将执行on_button_clicked方法。发生这种情况时,窗口和按钮对象分别作为self和widget传递给方法。这在需要对按钮执行某些操作的情况下非常有用,例如获取其状态或更改其文本 如果没有小部件参数,按钮对象将被传递给该方

我正在学习Gtk编程与python从。但是我不明白在下面的回调定义中使用
widget
关键字的原因是什么?有人能解释一下它的作用吗

def on_button_clicked(self, widget):
    print("Hello World")

单击按钮时,将执行on_button_clicked方法。发生这种情况时,窗口和按钮对象分别作为
self
widget
传递给方法。这在需要对按钮执行某些操作的情况下非常有用,例如获取其状态或更改其文本


如果没有
小部件
参数,按钮对象将被传递给该方法,并且没有参数接收它,并且您将得到一个TypeError。

当单击按钮时,将执行on_button_clicked方法。发生这种情况时,窗口和按钮对象分别作为
self
widget
传递给方法。这在需要对按钮执行某些操作的情况下非常有用,例如获取其状态或更改其文本


如果没有
小部件
参数,按钮对象将被传递给方法,而没有参数接收它,您将得到一个TypeError。

这是否意味着任何对象的实例总是传递给从该实例调用的所有回调函数?@DipanjanPatra是,这就是为什么对象方法的第一个参数总是self;它是否提供了传递回调数据的方法(这将是第三个参数)?这是否意味着任何对象的实例总是传递给从该实例调用的所有回调函数?@DipanjanPatra是的,这就是为什么对象方法的第一个参数总是self。我对PyGObject不是很熟悉;它是否提供了传递回调数据的方法(这将是第三个参数)?