为Python而枯萎?
在Java的Lombok中,有一个名为为Python而枯萎?,python,lombok,boilerplate,Python,Lombok,Boilerplate,在Java的Lombok中,有一个名为wither的功能,它克隆一个现有实例并只更改它的一个属性() Python中是否有类似的东西 (类似于Lombok的Python项目如下所示,但它们没有此功能: ) 您可以使用copy.copy import copy my_copy = copy.copy(my_obj) my_copy.my_attribute = my_value 请注意,这将执行浅复制,即对其他对象(如列表)的所有引用将指向同一对象。如果需要“深度”拷贝,请使用copy.d
wither
的功能,它克隆一个现有实例并只更改它的一个属性()
Python中是否有类似的东西
(类似于Lombok的Python项目如下所示,但它们没有此功能:
您可以使用
copy.copy
import copy
my_copy = copy.copy(my_obj)
my_copy.my_attribute = my_value
请注意,这将执行浅复制,即对其他对象(如列表)的所有引用将指向同一对象。如果需要“深度”拷贝,请使用copy.deepcopy(my_obj)
这适用于大多数对象,但不是所有对象。Python库通过
以下是从文档中复制的示例:
>>> @attr.s
... class C(object):
... x = attr.ib()
... y = attr.ib()
>>> i1 = C(1, 2)
>>> i1
C(x=1, y=2)
>>> i2 = attr.evolve(i1, y=3)
>>> i2
C(x=1, y=3)
>>> i1 == i2 # False
False