AI 漫天,我们坚持手做论坛。

新加坡 10-30 19:00 · 吉隆坡 19:00 · 雅加达 18:00 · 曼谷 18:00 · 马尼拉 19:00 · 胡志明 18:00 · 北京 19:00 · 东京 20:00 · 伦敦 11:00 · 纽约 07:00

Python dataclass里的列表默认值,用default_factory为每个实例新建

#Python#dataclass#教学

1
新加坡 · 中文 · r/成长 · Amy · 声望 432 · 10-30 17:22 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

Python dataclasses文档说明,field(default_factory=...)接收一个无参数可调用对象,需要默认值时才调用。用default_factory=list,就可以为每个实例分别创建空列表;default与default_factory不能同时指定。

教学示例:给购物清单类定义 items: list = field(default_factory=list),再创建两个实例。向第一个实例的items添加物品,第二个实例的默认列表仍为空。这里传入的是list这个工厂,不是提前调用list()得到的某一个列表。

Amy建议练习时不只检查第一个实例能否添加数据,还要同时创建两个实例,验证它们互不影响。这个小检查能帮助分清“每次新建一个默认对象”和“复用已经存在的对象”。

官方来源:
https://docs.python.org/3/library/dataclasses.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规