2016-10-14 3 views
-1

Я использую python для реализации чего-то вроде следующего.изменить переменную объекта из другого объекта (делегирование)

sample1.py

Class D: 
    def __ini__(self): 
     return 

    def disconnect(self): 
     ## I want to change isConnected in A, but I can not do something like A.isConnected = False here. I want to use delegation. 
     return 

sample2.py

Class B(A): 
    Class C(D): 
     def _init_(self): 
      super(B.C,self)._init_() 

     def foo(): 
      if self.isConnected: 
       print "error" 

    def __init__(self): 

     super(C, self).__init__() 

sample3.py

Class A(Object): 
    def __init__(self): 
     self.isConnected = False 

Всякий раз, когда D.disconnect() выполняется, я хочу изменить A.isConnected стоимость. Если мне не позволено называть A.isConnected = False. Как я могу использовать делегацию для достижения моей цели.

Было бы здорово, если бы вы могли дать некоторые подсказки или предложения.

Thanks

+0

Можем ли мы увидеть код? –

+0

Если 'A' создается в той же области действия, что и класс' C', тогда вам нужно только 'A.a = whatever' в' c'. Если это не сработает для вас, более подробно описывайте свой текущий дизайн. – Kevin

+0

Я отредактировал свой вопрос и добавлю код примера – user2612912

ответ

0

Непонятно с вашей целью. Похоже, вы хотите редактировать переменную до ее создания.

Если это не так, то вы должны быть в состоянии изменить A.isConnected со следующим кодом:

A.isConnected = True

+0

Извините, я редактирую свой пост и разъясняю его – user2612912

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