我想创建一个Pydantic模型,其中有一个列表字段,未初始化的默认值为空列表。有没有惯用的方法来做到这一点?
对于Python的内置数据类对象,可以使用field(default_factory=list)
,但是在我自己的实验中,这似乎可以防止Pydantic模型被腌制。一个简单的实现可能是这样的:
from pydantic import BaseModel
class Foo(BaseModel):
defaulted_list_field: Sequence[str] = [] # Bad!
但是我们都知道不要使用像空列表文字这样的可变值作为默认值。
那么为Pydantic列表字段提供默认值的正确方法是什么?
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] 删除。
我来说两句