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

Дженерики и вариантность

middle-senior~40 мин

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

Подделка 0301 лежит посреди стола, под самой яркой лампой. Это папка: на обложке «опечатанные контракты службы лифтов», внутри шесть листов. Пять с печатью Лорры. Шестой, контракт 301, без печати вовсе, и Палата полгода выдавала его за опечатанный, потому что он лежал в правильной папке.

Лорра не спрашивает, кто дописал. Она спрашивает, какой тип должен был сказать «нет». В прошлом уроке ты убрал из журнала Any, и каждая функция получила честную подпись. Но честная подпись list[Contract] у функции, которая дописывает в список, и честная подпись list[Sealed] у папки вместе дают подделку, если позволить отдать одно вместо другого.

Сегодня про типы, у которых есть параметр: «список чего», «ячейка чего», «источник чего». Их зовут дженериками. Главный вопрос урока: если опечатанный контракт это контракт, то список опечатанных это список контрактов? Ответ зависит от того, что со списком можно делать. Это зовут вариантностью.

урок из курса

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

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