如何使派生类的一个实例在Python中与其基类的另一个实例共享属性和状态?
class Foo(object):
def __init__(self, a, b):
self.value = a
def method1(self):
self.value += 1
return self.value
class Foo_child(Foo):
def __init__(self, Foo_instance, c, d):
super().__init__()
A = Foo(30,40)
B = Foo_child(A,50,60)
我需要的是改变B
应该影响A
的一些方法,反之亦然。
例如如果我致电B.method1
,那么我需要A
得到A.value
31,反之亦然。有没有明显的pythonic方法呢?
答案 0 :(得分:2)
您的问题是包含( has-a )关系,而不是是-a 关系。从Foo_child
(它们提供相同的功能)继承Foo
也可能 ,但实际上您想要委托处理value
和{ {1}}至method1
。
在[{1}}上重新实施Foo_instance
以委托method1
,Foo_child
上的Foo_instance
应该是value
对象,也可以代表:
Foo_child