如何在Python中将一个对象的所有属性复制到另一个对象?
有没有一个库的方法可以在Python中,把两个已经存在的同类实例之间的所有属性都复制过来?
我想说的类似于Apache Commons里的 PropertyUtilsBean.copyProperties()
这个方法。
6 个回答
58
如果你的类没有对 __getitem__
或 __setitem__
进行特殊的修改,那么你所有的属性都会存储在 __dict__
里,这样你就可以这样做:
nobj.__dict__ = oobj.__dict__.copy() # just a shallow copy
如果你使用了 Python 的属性功能,你应该查看一下 inspect.getmembers()
,然后筛选出你想要复制的属性。