Обязательный выбор интересного слова. Я думаю, это означает, что это по умолчанию на языке. Вам не нужно включать его с помощью from __future__ import annotations
Функция annotations
относится к PEP 563: Отложенная оценка аннотаций. Это расширение существующей функции аннотаций , которая изначально была представлена в python 3.0 и переопределена как подсказки типа в python 3.5, поэтому ваш код работает под python 3.8 .
Вот что необязательно from __future__ import annotations
изменения в python 3.7 +:
class A:
def f(self) -> A: # NameError: name 'A' is not defined
pass
, но это работает
from __future__ import annotations
class A:
def f(self) -> A:
pass
См. это Глава в python 3.7. Что нового в отложенных аннотациях:
Поскольку это изменение нарушает совместимость, необходимо включить новое поведение для каждого модуля в Python 3.7, используя __future__
импорт:
from __future__ import annotations
По умолчанию Python 4.0.