如何解决如何从构造函数参数继承类实例的状态?
我想将一个实例的状态分享给多个孩子,让他们一起分享父母的状态。
这是一个工作示例:
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
的实例和状态共享给 worker1
和 worker2
没有 {{1 }} 在类 self.mystack=mystack
的构造函数中。
解决方法
您的 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。