我正在尝试继承 wxpython SingleChoiceDialog 类。我有一个 TableChoiceDialog 类,它继承自 SingleChoiceDialog 添加通用功能,并且我有 2 个子类用于添加更精细的功能。基本上我在 OOP'ing
在我的 TableChoiceDialog 类中,我有一行调用超类__init__
,即
class TableChoiceDialog(wx.SingleChoiceDialog):
def __init__(self, parent, message, caption, list, ...other args...):
wx.SingleChoiceDialog.__init__(self, parent, message, caption, list)
我遇到的问题是,根据SingleChoiceDialog.__init__
文档字符串(和 wxPython API),SingleChoiceDialog 没有 self 参数作为其__init__
方法的一部分。
__init__(Window parent, String message, String caption,
List choices=EmptyList, long style=CHOICEDLG_STYLE,
Point pos=DefaultPosition) -> SingleChoiceDialog
正如我上面所说,程序会打印错误:
swig/python detected a memory leak of type 'wxSingleChoiceDialog *', no destructor found.
如果我取出 self 参数,系统会抱怨它期望一个SingleChoiceDialog
对象作为第一个参数,这似乎表明它实际上想要一个对 self 的引用。
当我取出 parent 参数时,留下 self (以及我很确定的其他 3 个参数)系统抱怨它只收到 3 个参数,而它需要 4 个参数。我很确定我通过了 4 个。
所以。我犯了什么明显的错误?我是否完全误解了 python 如何处理对象(因此几乎误解了 python)?我是否误解了整个 OOP?
请帮忙。提前致谢