python中类及其子类共享状态的实例
在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):
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无法正常工作。。。