Узор показывает, что он сделал:
import json
from dataclasses import dataclass
@dataclass(frozen=True)
class Seal:
by: str
at: int
raw = json.loads('{"by": "Квот", "at": "03:00"}')
seal = Seal(**raw)
print(seal)
print(seal.at + 100)
Никто не врёт. Аннотация at: int это обещание для mypy, а mypy читает код, а не то, что придёт по сети. Конверт пришёл по сети во время работы, json.loads отдал его как Any, и все обещания на нём молчат. А с другой стороны стоит Квот, который научился глушить mypy так, что тот молчит и о коде. Сегодня две проверки проверяющих. Первая следит, что mypy ругается там, где должен. Вторая сверяет значения с аннотациями тогда, когда mypy уже не смотрит: во время работы.
урок из курса
Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.