Sobes.tech
Назад к вопросам
Middle
1

Можем ли мы в Pydantic модели в качестве значения по умолчанию передать пустой список (например, field: List = [])?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Pydantic не рекомендуется использовать изменяемые объекты, такие как списки, в качестве значений по умолчанию напрямую (например, field: List = []), потому что это может привести к неожиданному поведению из-за того, что один и тот же объект списка будет разделяться между всеми экземплярами модели.

Правильный способ — использовать Field с default_factory, который создаёт новый объект при каждом создании экземпляра:

from pydantic import BaseModel, Field
from typing import List

class MyModel(BaseModel):
    field: List[int] = Field(default_factory=list)

Так каждый экземпляр MyModel будет иметь свой собственный пустой список по умолчанию, что безопасно и корректно.