首页 > 解决方案 > python class __dict__ 用于克隆对象属性的用法

问题描述

编辑 澄清:虽然我很欣赏copy已经发布的对 deep 的更正/建议,但这个问题主要是关于类方法的使用,以及以这种方式使用init__dict__克隆对象 attrs是否可以。

使用 init 复制对象属性是否有任何问题,更好的方法来实现这一点?

class CopyClass(obj):
    def __init__(self, obj1):
        super().__init__()
        self.__dict__ = obj1.__dict__.copy()

obj2 = CopyClass(obj1)

标签: pythonclassobjectcopy

解决方案


您可以简单地使用copy.deepcopy().

from copy import deepcopy

obj = Foo()  # Foo is some random class
obj_copy = deepcopy(obj)

推荐阅读