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