Mediumpydantic

Что такое Pydantic?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

Pydantic — библиотека валидации данных через type hints. Создаёт, валидирует и сериализует модели. В Pydantic v2 — Rust core (5-50x быстрее v1).

from pydantic import BaseModel, field_validator, ConfigDict

class User(BaseModel):
    model_config = ConfigDict(strict=True, frozen=True, extra='forbid')
    id: int
    name: str
    email: str | None = None

    @field_validator('name')
    @classmethod
    def name_upper(cls, v): return v.upper()

u = User(id=1, name='alice')      # '1' → int (str→int coercion, если не strict)
u.model_dump()                    # {'id': 1, 'name': 'ALICE', ...} → dict
u.model_dump_json()               # JSON string
  • User(id='abc')ValidationError с детальным описанием;
  • @model_validator(mode='after') — для cross-field;
  • from_attributes=True (ORM mode) — строить из SQLAlchemy моделей;
  • FastAPI использует Pydantic для request/response models;
  • JSON schema generation.

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.