将默认列表参数传递给数据类

将默认列表参数传递给数据类,第1张

将默认列表参数传递给数据类

从该

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'])


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5617053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存