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

Jor*_*ril 43 python

在Python中是否有一个库方法来复制同一个类的两个(已经存在的)实例之间的所有属性?

我的意思是,就像Apache Commons' PropertyUtilsBean.copyProperties()

Pet*_*sey 58

试试destination.__dict__.update(source.__dict__).

  • 我喜欢这个,因为当 `source` 缺少任何类似的属性时,它不会丢弃 `destination` 的现有属性。 (2认同)

Pet*_*ann 37

如果您的类没有修改__getitem____setitem__特殊属性访问,__dict__那么您的所有属性都会被存储,因此您可以执行以下操作:

 nobj.__dict__ = oobj.__dict__.copy()    # just a shallow copy
Run Code Online (Sandbox Code Playgroud)

如果使用python属性,则应查看inspect.getmembers()并过滤掉要复制的属性.