РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
189 of 307 menu

Параметр frozen

Параметр frozen применяется к модели Pydantic и делает её неизменяемой. После создания экземпляра модели присваивание новых значений атрибутам вызывает ошибку ValidationError. По умолчанию параметр равен False, то есть модель изменяема.

Синтаксис

class Model(BaseModel): model_config = ConfigDict(frozen=True) field: type

Пример

Давайте создадим замороженную модель и попробуем изменить её атрибут:

from fastapi import FastAPI from pydantic import BaseModel, ConfigDict app = FastAPI() class User(BaseModel): model_config = ConfigDict(frozen=True) name: str age: int @app.get('/user') def get_user(): user = User(name='abcde', age=25) user.age = 30 return user

Результат выполнения кода:

pydantic_core._pydantic_core.ValidationError: 1 validation error for User age Instance is frozen [type=frozen_instance, input_value=30, input_type=int]

Пример

Давайте создадим замороженную модель и просто вернём её без изменений:

from fastapi import FastAPI from pydantic import BaseModel, ConfigDict app = FastAPI() class User(BaseModel): model_config = ConfigDict(frozen=True) name: str age: int @app.get('/user') def get_user(): return User(name='abcde', age=25)

Результат выполнения кода:

{"name": "abcde", "age": 25}

Смотрите также

  • класс BaseModel,
    который является базой для всех моделей Pydantic
  • параметр extra,
    который управляет поведением лишних полей
  • параметр strict,
    который запрещает приведение типов при валидации
  • класс ConfigDict,
    который хранит настройки модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить