python - 如何使用构造函数列表创建不同的对象
问题描述
我有一个列表,其中包含不同类的不同构造函数。但是构造函数总是返回相同的对象,因为它们具有相同的内存方向。
我有这样的事情:
l=[class1(),class2(),class3()]
l2 = []
如果我尝试用它创建不同的对象,它会返回具有相同内存方向的相同对象。我正在这样做:
for i in range(50):
obj = l[random]
l2.append(obj)
l2 有 50 个对象,但第一类的所有对象都是相同的,并且它们具有相同的内存方向。其他类也是如此。
我想要 50 个不同的对象。
解决方案
每次要将实例添加到列表中时,都必须调用类的构造函数。为此,我建议您使用类列表而不是对象实例列表(否则您只是将这 3 个实例的相同引用添加到列表中)
l=[class1,class2,class3]
for _ in range(50):
cls = l[random]
l2.append(cls())
推荐阅读
- sql - 如何在postgresql中将字符串中的所有内容获取到第二个或第三个逗号?
- sql - 在具有多个百分比行的“选择不同”查询中计算占总数的新百分比
- java - Spring boot无法从datasouce(mysql)确定jdbc url
- html - 溢出:滚动不起作用
- yii - 从模型 yii2 获取表名
- javascript - 我无法点击带有` `标签且没有href属性的链接
- ruby-on-rails - JSON模型中的条件测试
- android - Android Espresso 服务器调用不会在下一次服务器调用之前保留令牌
- javascript - 禁用angularjs中的表单元素
- python - 烧瓶自动重新加载不刷新浏览器