Раздел 45 · Python backend: Тарбадель

TypedDict, Literal, Final и NewType

middle-senior~35 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Декораторы из прошлого урока больше не стирают сигнатуры. Лорра сдвигает их в сторону и раскладывает на зелёном сукне две новые подделки. Обе это не код, а записи из картотеки Архива: каждый контракт там хранится словарём.

Словарь в Python принимает любой ключ и любое значение. В этом его сила, пока он корзина в ларьке, и его беда, когда он контракт. Подпись dict[str, object] честно говорит mypy: «тут строки и что угодно». mypy верит и ничего не проверяет.

В этом уроке у словаря появится форма: какие ключи обязаны быть, какие можно опустить, какого типа значение под каждым. У статуса появится список допустимых слов, у лимита сумм обещание не меняться, у номера контракта свой тип, который нельзя спутать с другим числом. Всё это пишется в аннотациях и ничего не стоит при запуске.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.