从其他对象更改对象变量(委托)

时间:2016-10-14 18:28:06

标签: python oop design-patterns

我正在使用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。我如何使用委托来实现我的目标。

如果您能提供一些提示或建议,那就太棒了。

谢谢

1 个答案:

答案 0 :(得分:0)

我不清楚你的目标。听起来好像你想在变量创建之前编辑变量。

如果不是这种情况,您应该可以使用以下代码更改A.isConnected:

A.isConnected = True