python中类及其子类共享状态的实例

python中类及其子类共享状态的实例,python,class,inheritance,attributes,state,Python,Class,Inheritance,Attributes,State,在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):

在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,反之亦然。有什么明显的python方法可以做到这一点吗?

你的问题是一种包容(has-a)关系,而不是一种Is-a关系。可能还需要使
Foo_child
继承自
Foo
(它们提供相同的功能),但本质上,您希望将
方法1
的处理委托给
Foo_实例

Foo_child
上重新实现
method1
以委托给
Foo_实例
Foo_child
上的
应该是一个
属性
对象,它还委托:

class Foo_child(Foo):
    def __init__(self, Foo_instance, c, d):
        super().__init__(c, d)
        self.Foo_instance = Foo_instance

    @property
    def value(self):
        return self.Foo_instance.value

    @value.setter
    def value(self, value):
        self.Foo_instance.value = value

    def method1(self):
        return self.Foo_instance.method1()

你到底在问什么<代码>返回自我。值+=1无法正常工作。。。