4

wxpython SingleChoiceDialog クラスをサブクラス化しようとしています。一般的な機能を追加する SingleChoiceDialog を継承する TableChoiceDialog クラスがあり、より洗練された機能を追加するための 2 つのサブクラスがあります。基本的に私はOOPしています

__init__私のTableChoiceDialogクラスには、スーパークラスの を呼び出す行があります。

class TableChoiceDialog(wx.SingleChoiceDialog):
    def __init__(self, parent, message, caption, list, ...other args...):
        wx.SingleChoiceDialog.__init__(self, parent, message, caption, list)

私が抱えている問題は、SingleChoiceDialog.__init__docstring (および 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 への参照が必要であることを示しているようです。

親の引数を取り出して、self を残して (他の 3 つは問題ないと確信しています)、システムは、4 が必要なときに 3 つの引数しか受け取っていないと不平を言います。4 を渡していると確信しています。

そう。私が犯した明白な間違いは何ですか?Pythonがオブジェクトを処理する方法を完全に誤解していますか(したがって、Pythonをかなり誤解しています)?OOP全体を誤解していますか?

助けてください。前もって感謝します

4

2 に答える 2