根据python约定+速度,通常首选什么?类似的东西:
class Object(object):
def __init__(self, other_object=None):
if other_object:
self.value = other_object.value
else:
self.value = something
然后
obj = Object(other_object)
或使用copy():
from copy import copy
obj = copy(other_object)
答案 0 :(得分:5)
考虑到copy
模块的文档:
为了让一个类定义自己的副本实现,它可以 定义特殊方法
__copy__()
和__deepcopy__()
。前者是 调用实现浅拷贝操作;没有额外的 参数传递。调用后者来实现深层复制 操作;它传递了一个参数,即备忘录字典。如果__deepcopy__()
实现需要制作组件的深层副本,它应该使用组件调用deepcopy()
函数 作为第一个参数,备忘录字典作为第二个参数。
因此,如果您认为标准copy()
或deepcopy()
工作缓慢或存在其他问题,请执行上述方法之一。这样你就会坚持使用众所周知的Python对象复制机制,仍然按照你想要的方式复制对象。