Я пытаюсь создать подкласс для класса wxpython SingleChoiceDialog. У меня есть класс TableChoiceDialog, который унаследован от SingleChoiceDialog, добавляющего общие функциональные возможности, и у меня есть 2 подкласса, которые добавляют более усовершенствованную функциональность. В основном я O.O.P'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__
строкой документации (и API wxPython), 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
в качестве первого аргумента, что, по-видимому, указывает на то, что он на самом деле хочет ссылку на себя.
Когда я убираю родительский аргумент, оставляя себя (а остальные 3, которые, я уверен, в порядке), система жалуется, что она получила только 3 аргумента, когда это было необходимо 4. Я почти уверен, что я прохождение 4.
Итак. Какую явно очевидную ошибку я совершил? Я полностью не понял, как Python обрабатывает объекты (и, следовательно, в значительной степени неправильно понял Python)? Я неправильно понял ООП в целом?
Пожалуйста, помогите. Заранее спасибо