Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中创建任意对象的副本并调用构造函数_Python_Python 2.7 - Fatal编程技术网

在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]