Выбор ответа Middle Типизация обновлено

Синтаксис дженериков Python 3.12

Вопрос

Как в Python 3.12+ объявить дженерик-функцию, возвращающую первый элемент списка того же типа?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: def firstT - T: ... PEP 695 добавил параметры типа в квадратных скобках после имени функции или класса, а также оператор type для псевдонимов.

Варианты ответа

  1. def first<T>(items: list<T>) -> T: ...
  2. def first[T](items: list[T]) -> T: ...правильный ответ
  3. def first(items: list[T]) -> T: ... без объявления T
  4. def first(items: Generic[list]) -> Generic: ...

Разбор

PEP 695 добавил параметры типа в квадратных скобках после имени функции или класса, а также оператор type для псевдонимов. Угловые скобки это синтаксис TypeScript и Java. Без объявления T (через [T] или TypeVar) анализатор не знает, что это переменная типа.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.