如何在Python中将一个对象的所有属性复制到另一个对象?

69 投票
6 回答
66635 浏览
提问于 2025-04-11 09:30

有没有一个库的方法可以在Python中,把两个已经存在的同类实例之间的所有属性都复制过来?

我想说的类似于Apache Commons里的 PropertyUtilsBean.copyProperties() 这个方法。

6 个回答

58

如果你的类没有对 __getitem____setitem__ 进行特殊的修改,那么你所有的属性都会存储在 __dict__ 里,这样你就可以这样做:

 nobj.__dict__ = oobj.__dict__.copy()    # just a shallow copy

如果你使用了 Python 的属性功能,你应该查看一下 inspect.getmembers(),然后筛选出你想要复制的属性。

撰写回答