Python dataclass 的 compare=False:备注明明不同,为什么两个对象仍然相等 给任务记录增加处理备注后,两份对象的备注一份是queued、一份是finished,放进集合却只剩一个位置。如果备注字段声明了compare=False,这个结果正符合生成的相等规则。读者需要先确定自己比较的是任务身... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python dataclasses.replace:只改数量,为什么手动改过的派生字段又被重算 一条数据类记录里,单价和数量用于构造对象,总额在初始化后计算。调试时手动修正过总额,随后用 dataclasses.replace 修改数量,却发现新对象没有保留那份手动值。这不是 replace 漏拷贝,而是它通过... yunqueblog/ 技术教程/ 2026-10-02/ 2 阅读
Python dataclass 字段清单:构造时传入的值,为什么没有出现在 asdict 里 把一段原始记录交给 dataclass,构造函数正常接收了它,导出字典时却找不到这个输入;类里另一项默认配置也没有进入字段列表。与其怀疑序列化漏字段,不如先看注解:普通字段、InitVar 和 ClassVar 在数... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python dataclass 默认值:default_factory 怎样避免多个实例共用列表 两个任务,为什么出现了同一条标签批处理程序里,每个任务都有一个标签列表。给任务甲追加“待重试”,任务乙却也出现相同标签,这类问题容易被误判为并发写入。实际上,即使程序只有一个线程,只要两个实例持有同一个列表,也会出现... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读