From future import annotations

Объясняю значение from __future__ import annotations

Функция annotations относится к PEP 563 - речь идет об Отложенной оценке аннотаций. Это усовершенствование существующей функции аннотаций, которая изначально была введена в python 3.0 и переопределена для подсказок типа в python 3.5

Поскольку это изменение нарушает совместимость, новое поведение должно быть включено для каждого модуля в Python3.7+, подразумевающего отложенную аннотацию. Необходимо использовать from __future__ import annotations. Такое поведение является поведением по умолчанию начиная Python 3.10

Пример:

class A:
    def f(self) -> A: # NameError: name 'A' is not defined
        pass
from __future__ import annotations

class A:
    def f(self) -> A:
        pass

>>> На главную