我正在编写一个程序,需要将数据属性从一个类的一个实例复制到另一个实例。首先,这是使用deepcopy()实现的,在函数的本地范围内创建一个重复实例,然后在函数终止时丢弃该实例。问题是,这用于程序的一个重要方面,该方面将重复多次。我担心deepcopy()会使程序速度大大降低
我的替代解决方案是通过以下方式设置第二个实例的数据属性:
instance2.dataattribute = instance1.dataattribute
我认为这会产生一个别名问题,对instance1的更改也会对instance2进行更改
将数据属性复制到同一类的另一个实例的最有效方法是什么
你真的试过吗
它只会在参数可变时创建问题:
您有三种选择:赋值、浅拷贝和深拷贝。当属性不可变时,赋值就可以了。浅拷贝(
copy.copy
)仅适用于具有不可变字段的可变属性(例如,整数列表)。深度复制(copy.deepcopy
)适用于包含可变字段的可变属性(例如,列表列表)。下面是关于这个主题的一篇文章相关问题 更多 >
编程相关推荐