在Python中手动克隆/复制实例
我知道在 copy
模块里有 copy
和 deepcopy
这两个功能,但我想手动实现一下...
我开始尝试使用 __dict__
这个对象,看看怎么能创建一个实例,并设置和要复制的对象一样的属性。以下是我第一次测试的结果:
class A(object):
def F(self):
print "Test!"
a = A()
x = type('A', (object, ), dict(A.__dict__))
x.F()
当我执行时,出现了以下错误:
TypeError: unbound method F() must be called with A instance as first argument (got nothing instead)
我该如何在 Python 中实现一个方法/函数来递归地克隆/复制一个对象呢?
2 个回答
0
在不直接回答你关于“克隆/复制”的问题的情况下,我想说你的代码有个小错误。以下是我修改后的代码版本:
class A(object):
def f(self):
print "Test!"
a = A()
a.f()
X = type('A', (object, ), dict(A.__dict__))
x = X()
x.f()