传递给类函数的类错误

时间:2016-07-01 02:53:26

标签: python class

我正在编写一个程序,它有一个Settings类来管理程序中的设置。其中有一个SettingDialog函数显示选项窗口和lang_register函数,它可以执行其他操作。但是,当我在主窗口中调用SettingDialog函数时,它表示该类是ImageMenuItem对象,并且它没有属性lang_register。但是如果我手动调用SettingDialog函数并打印它的类,它会说它是Settings类,这是我的预期。谁能告诉我发生了什么?代码是dropify。错误发生在第110行。非常感谢。

编辑: 我会添加一些问题的详细信息。

我在SettingDialog函数的开头添加一行,如下所示:

print(type(self))

这样它应该输出函数类的类型。当我尝试访问GUI中的选项窗口,从而调用该函数时,它输出:

<class 'gi.repository.Gtk.ImageMenuItem'>

错误:

Traceback (most recent call last):
  File "./GtkEncrypter.py", line 110, in SettingDialog
    eng.connect("toggled", self.lang_register, self)
AttributeError: 'ImageMenuItem' object has no attribute 'lang_register'

这很奇怪,因为班级的标题如下:

class Settings():

并且GUI仅在SettingDialog函数

中构建

然后,我尝试手动调用该函数,因此我添加一行:

Set.SettingDialog()

之后

Set = Settings()

所以输出如下:

<class '__main__.Settings'>

我还检查了我的函数定义,标题是:

def lang_register(self, widget):

并且第一个参数是self,它应该将函数添加到类中。

0 个答案:

没有答案