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

Callable, ParamSpec, Concatenate

middle-senior~35 мин

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

Узор висит над столом Палаты низко, спираль на корпусе тусклая. Перед ним журнал вызовов проверки подписи за ночь, и в одной записи два числа там, где должна быть подпись-строка. Это подделка 0304. Проверку обернули декоратором, она стала считать вызовы, и с той минуты ей можно было передать что угодно.

Декораторы ты писал в уроке 51: функция принимает функцию и отдаёт обёртку, functools.wraps переносит имя и документацию. Тогда типов не было, и обёртка честно принимала *args, **kwargs. Теперь у каждой функции Палаты есть сигнатура, и протоколы на неё опираются. Обёртка, которая принимает что угодно, это дыра в каждом из них.

Сегодня ты научишься записывать тип «функция с такими-то параметрами» и, главное, тип «те же параметры, что у той функции, какими бы они ни были». Это последний инструмент, которого не хватало декораторам арсенала, чтобы стоять в коде под --strict.

урок из курса

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

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