问题描述
class Thing:
def __init__(self,name,number):
self.name = name
self.number = number
class Collection:
def __init__(self,description,things_list = []):
self.description = description
self.things_list = things_list
def add_thing(self,thing):
self.things_list.append(thing)
x_col = Collection("Collection X")
y_col = Collection("Collection Y")
x_col.add_thing(Thing("a",0))
x_col.add_thing(Thing("b",1))
y_col.add_thing(Thing("c",2))
y_col.add_thing(Thing("d",3))
y_col.add_thing(Thing("e",4))
print(x_col.description)
print(len(x_col.things_list))
print(y_col.description)
print(len(y_col.things_list))
运行脚本时,我得到:
Collection X
5
Collection Y
5
而不是预期的
Collection X
2
Collection Y
3
我进行了一些搜索以查看是否有人遇到此问题,但是我发现的所有其他问题都涉及到不使用__init__构造函数的人。即使我一直等到完成添加到x_col的Things_list中后,这种行为仍然存在:
x_col = Collection("Collection X")
x_col.add_thing(Thing("a",1))
y_col = Collection("Collection Y")
y_col最终只是使用x_col列表中的两件事创建的。
Windows 10 2004上的Python 3.8.5 64位。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)