如何给Pydantic列表字段提供默认值?

萨利姆·法德利(Salim Fadhley)

我想创建一个Pydantic模型,其中有一个列表字段,未初始化的默认值为空列表。有没有惯用的方法来做到这一点?

对于Python的内置数据类对象,可以使用field(default_factory=list),但是在我自己的实验中,这似乎可以防止Pydantic模型被腌制。一个简单的实现可能是这样的:

from pydantic import BaseModel

class Foo(BaseModel):
    defaulted_list_field: Sequence[str] = [] # Bad!

但是我们都知道不要使用像空列表文字这样的可变值作为默认值。

那么为Pydantic列表字段提供默认值的正确方法是什么?

alex_noname

Pydantic还具有default_factory 参数

from typing import Sequence
from pydantic import BaseModel, Field


class Foo(BaseModel):
    defaulted_list_field: Sequence[str] = Field(default_factory=list)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章