在Python中创建任意对象的副本并调用构造函数
我有从在Python中创建任意对象的副本并调用构造函数,python,python-2.7,Python,Python 2.7,我有从Foo继承的类A、B和C。他们的\uuuu init\uuuu方法都做了不同的事情,但有一个相似的特征:它们都在\uuuu init\uuu中使用一个参数i。这些类的一些实例位于列表l中,并且都混合在一起。在l中,所有对象都具有i=1 我需要遍历l,对于我看到的每个对象,我需要创建同一个对象,但是用I=2而不是I=1实例化 我该怎么做 我试过这个: l2 = [] for obj in l: obj_2 = type (obj).__init__(2) l2.append(
Foo
继承的类A
、B
和C
。他们的\uuuu init\uuuu
方法都做了不同的事情,但有一个相似的特征:它们都在\uuuu init\uuu
中使用一个参数i
。这些类的一些实例位于列表l
中,并且都混合在一起。在l
中,所有对象都具有i=1
我需要遍历l
,对于我看到的每个对象,我需要创建同一个对象,但是用I=2
而不是I=1
实例化
我该怎么做
我试过这个:
l2 = []
for obj in l:
obj_2 = type (obj).__init__(2)
l2.append(obj_2)
但是它不起作用。我不知道你说的“创建同一个对象”是什么意思。如果您的意思是“创建同一类型的全新独特对象”,请尝试以下操作:
obj_2 = type (obj)(2)
您的代码,重写为列表:
l2 = [type(obj)(2) for obj in l]