如何从构造函数参数继承类实例的状态?



我想将一个实例的状态共享给多个子实例,以便它们一起共享父实例的状态。

这是一个工作示例:

class Stack:
def __init__(self):
self.myValues = []
def my_add(self, x):
self.myValues.append(x)

class Worker(Stack):
def __init__(self, my_stack):
super().__init__()

if __name__ == "__main__":
mystack = Stack()
worker1 = Worker(mystack)
worker2 = Worker(mystack)
worker1.my_add(4)
worker2.my_add(5)
print(len(mystack.myValues))
print(len(worker1.myValues))
print(len(worker2.myValues))

输出:

0
1
1

我需要输出为"2 2 2",因此共享mystack的实例和状态,以便在类Worker的构造函数中self.mystack=mystackworker1worker2

您的Worker类会忽略传递给它的Stack实例。这不是继承的工作。Worker的实例使用Stack的实例;它们本身不应该Stack的实例。

class Stack:
def __init__(self):
self.myValues = []
def my_add(self, x):
self.myValues.append(x)

class Worker:    
def __init__(self, my_stack):
self.stack = my_stack
def my_add(self, x):
self.stack.my_add(x)
@property
def myValues(self):
return self.stack.myValues

最新更新