如何解决如何给Pydantic列表字段提供默认值?
我想创建一个Pydantic模型,其中有一个列表字段,未进行初始化的默认值为空列表。有没有惯用的方式做到这一点?
对于Python的内置数据类对象,您可以使用field(default_factory=list)
,但是在我自己的实验中,这似乎可以防止Pydantic模型被腌制。天真的实现可能是这样的:
from pydantic import BaseModel
class Foo(BaseModel):
defaulted_list_field: Sequence[str] = [] # Bad!
但是我们都知道不要使用像空列表文字这样的可变值作为默认值。
那么给Pydantic列表字段一个默认值的正确方法是什么?
解决方法
Pydantic也有default_factory
parameter:
from typing import Sequence
from pydantic import BaseModel,Field
class Foo(BaseModel):
defaulted_list_field: Sequence[str] = Field(default_factory=list)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。