Почему имя содержащего класса не распознается как аннотация функции возвращаемого значения? [дубликат]Python

Программы на Python
Anonymous
Почему имя содержащего класса не распознается как аннотация функции возвращаемого значения? [дубликат]

Сообщение Anonymous »

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

Код: Выделить всё

class Trie:
@staticmethod
def from_mapping(mapping) -> Trie:
# docstrings and initialization ommitted
trie = Trie()
return trie
PEP 3107 гласит:

Аннотации функций — это не что иное, как способ связывания произвольных выражений Python с различными частями. функции во время компиляции.
— допустимое выражение в Python, не так ли? Python не согласен или, скорее, не может найти имя:

Код: Выделить всё

def from_mapping(mapping) -> Trie:

Код: Выделить всё

NameError: name 'Trie' is not defined
Следует отметить, что эта ошибка не возникает, если фундаментальный тип (например, object или int) ) или указан стандартный тип библиотеки (например, Collections.deque).
Что вызывает эту ошибку и как ее исправить?

Подробнее здесь: https://stackoverflow.com/questions/157 ... ue-functio

Вернуться в «Python»