从该
dataclasses.field文档:
要使用的参数
field()是:
- default_factory: 如果提供, 则必须为零参数可调用对象
,当此字段需要默认值时将被调用。除其他用途外,这可用于指定具有可变默认值的字段,如下所述。同时指定default和default_factory是错误的。
您
default_factory不是可调用的0参数,而是一个列表,这是导致错误的原因:
@dataclassclass Pizza(): ingredients: List = field(default_factory=['dow', 'tomatoes']) # <- wrong!
改用lambda函数:
@dataclassclass Pizza(): ingredients: List = field(default_factory=lambda: ['dow', 'tomatoes'])



