python - 在 Python 中创建对象的副本而不使用 deepcopy
问题描述
我一直在研究如何改进当前使用 copy.deepcopy() 函数的 Python 类的复制操作的运行时:
def Foo(object):
...
copy_method(self):
return copy.deepcopy(self)
该类不继承自任何其他类。因此,我正在考虑从运行时角度来看效率更高的上述替代方案,但让我怀疑是否会发生任何内存问题,因为上面提到的“Foo”类没有工厂或 ObjectManger:
@classmethod
new_instance(cls):
return cls.__new__(cls)
copy_method(self):
new = self.new_instance()
new.__dict__.update(self.__dict__)
return new
这个实现是一个糟糕的主意吗?我了解 deepcopy() 对具有复杂结构的类等的效用,但是考虑到 Foo 类的简单结构,这种建议的方法要有效得多。或者这是一个可怕的错误,会导致垃圾收集和内存管理问题?任何见解将不胜感激。
解决方案
推荐阅读
- python - 使用 matplotlib 绘制前 10 个特征的特征重要性
- python - MongoDB - 不推荐使用计数
- arrays - React 钩子不会在单击事件上更新图像数组的状态
- c++ - 铸造一个已定义(已知)的邻居记忆
- python - 我在哪里可以下载用于农业用例的 geotiff 格式的正射镶嵌图像
- angular - 如果我使用带有 ng build 的库,我如何让我的服务器检测角度的修改
- javascript - 使用包含 HTM:L 标签的字符串进行操作
- kubernetes-helm - 如何使用 pvc 和 initContainer 对部署执行 helm update?
- php - CS-CART 如何通过 API 创建新类别
- c - 我正在尝试使用 Luhn 的算法来检查有效的信用卡,但我无法将这些数字相加