2011-01-18 29 views
0

私はwxpythonを使ってGUIを生成しています。私がやっているプログラムの構造を以下に示します。私は、GUIの各セクション(クラス1とクラス2)のクラスを持っています。 Panelクラスを使ってこれらのセクションを作成しています。 class1とclass2は別のクラス(Groupクラス)から派生しています。私は、他の派生クラスの派生クラスのメソッドにその場でアクセスしたいと思います。だから私がclassA.method1()に入ったら、classB.method3()を呼びたいと思う。それをする最善の方法は何ですか?他の派生クラスから派生クラスメソッドにアクセスする方法

class Panel(wx.Panel): 

    def __init__(self, parent): 
     class1 = ClassA() 
     class2 = ClassB() 


class Group(wx.Panel): 

    def __init__(self, parent, name): 
     . 
     . 
     . 


class ClassA(Group): 

    def method1(self): 
     .... 

    def method2(self): 
     .... 

class ClassB(Group): 

    def method3(self): 
     .... 

    def method4(self): 
     .... 
+0

'Group'にはパラメータを持つコンストラクタがありますが、' ClassA'と 'ClassB'にはデフォルトのコンストラクタを使います。コンストラクタをオーバーライドしましたか? – unholysampler

答えて

0

私はあなたがそのクラスのインスタンスのメソッドではなく、クラスメソッドを呼び出すと仮定しています。 ClassA.method1(から

)、ClassBのは、グローバルであるべきことなので、あなたがしなければならないすべては次のとおりです。

class ClassA(Group): 

    def method1(self): 
     classB.method3(someclass) 

あなたがしなければならないすべては、 "あなたが中に入れたいかを把握されますsomeclass '。 method3が決して 'self'を使用しない場合、それを単に渡すだけです。 ClassAに互換性がある場合は、それを '自己'に渡すことができます。それ以外の場合はClassBのインスタンスを渡す必要があります。

+0

実際、私は間違っていると思う、私はClassBのインスタンスになるためには 'someclass'のニーズがあると思う。 – kiyo

関連する問題