Самостоятельная ссылка или прямая ссылка на аннотации типов в Python [дубликаты]

На этот вопрос уже есть ответ здесь:

Тип подсказки: решить круговую зависимость 1 ответ

Я пытаюсь выяснить, как самоопределение типов работает саннотации типа python3 - в документах ничего не указано по этому поводу.

В качестве примера:

from typing import TypeVar, Optional, Generic

T = TypeVar('T')
class Node(Generic[T]):
    left = None
    right = None
    value = None

    def __init__(
        self, value: Optional[T],
        left: Optional[Node[T]]=None,
        right: Optional[Node[T]]=None,
    ) -> None:
        self.value = value
        self.left = left
        self.right = right

Этот код генерирует ошибку:

Traceback (most recent call last):
  File "node.py", line 4, in <module>
    class Node(Generic[T]):
  File "node.py", line 12, in Node
    right: Optional[Node[T]]=None,
NameError: name 'Node' is not defined

Это использует Python 3.5.1

Ответы на вопрос(1)

Ваш ответ на вопрос