如何冻结未冻结数据类的单个字段?

2024-05-15 07:45:43 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以指定在非冻结的数据类中冻结单个字段?大概是这样的:

@dataclass
class Data:
    fixed: int = field(frozen=True)
    mutable: int = field(frozen=False)

d = Data(2, 3)
d.mutable = 5   # fine
d.fixed = 7     # raises exception

我意识到这可以通过属性和setter访问私有数据字段手动完成,但这样我们就失去了数据类的一些优势:首先,私有数据字段需要不同的名称,这意味着自动生成的构造函数的参数名称与字段的参数名称不同


Tags: 数据名称falsetruefielddata参数class