2011-01-18 5 views
0

Я использую wxpython для создания графического интерфейса. Структура программы, которую я делаю, показана ниже. У меня есть класс для каждого раздела GUI (class1 и class2). Я использую класс Panel для создания этих разделов. class1 и class2 производятся из другого класса (класс Group). Я хочу получить доступ к методам производного класса из другого производного класса «на лету». Поэтому, когда я в классеA.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. Если метод 3 никогда не использует «я», просто передайте его «Нет». Если ClassA совместим, вы можете передать его «я». В противном случае вам нужно передать экземпляр класса ClassB.

+0

На самом деле я думаю, что я ошибаюсь, я думаю, что «someclass» NEEDs является экземпляром ClassB. – kiyo

Смежные вопросы