我有一个列表,其中包含不同类的不同构造函数。但是构造函数总是返回相同的对象,因为它们具有相同的内存方向。
我有这样的东西:
l=[class1(),class2(),class3()]
l2 = []
如果我尝试用它创建不同的对象,它将返回具有相同存储方向的相同对象。我正在这样做:
for i in range(50):
obj = l[random]
l2.append(obj)
l2有50个对象,但是所有第一类的对象都是相同的,并且它们具有相同的存储方向。其他类也是如此。
我想要50个不同的对象。
答案 0 :(得分:0)
每次要将实例添加到列表时,都必须调用该类的构造函数。为此,我建议您使用类列表而不是对象实例列表(否则,您只是将对这3个实例的相同引用添加到列表中)
l=[class1,class2,class3]
for _ in range(50):
cls = l[random]
l2.append(cls())