【发布时间】:2020-09-16 19:55:42
【问题描述】:
如何获得不可变对象的修改副本?
即some_magical_method 怎么会在这个剪报中看起来像?
import attr
@attr.s(frozen=True, slots=True)
class Config:
param1: int = attr.ib()
param2: str = attr.ib()
my_base_config = Config(param1=1, param2="2")
my_derived_config = my_base_config.some_magical_method(param2="two")
print(my_derived_config.param1) # output: 1
print(my_derived_config.param2) # output: two
背景:我想为我的配置使用不可变对象。但我也想在处理非常相似的配置时避免代码重复,例如用于单元测试
【问题讨论】:
标签: python-3.x immutability copy-constructor python-3.8 python-attrs