Почему имя содержащего класса не распознается как аннотация функции возвращаемого значения? [Дубликат]
На этот вопрос уже есть ответ здесь:
Как мне указать, что возвращаемый тип метода такой же, как и сам класс в python? 3 ответаЯ собирался использоватьPython-функция аннотации указать тип возвращаемого значения статического метода фабрики. Я понимаю этоодин из желаемых вариантов использования для аннотаций.
class Trie:
@staticmethod
def from_mapping(mapping) -> Trie:
# docstrings and initialization ommitted
trie = Trie()
return trie
ПКП 3107 говорится, что:
Аннотации функций - не более чем способ связывания произвольных выражений Python с различными частями функции во время компиляции.
Trie
является допустимым выражением в Python, нене так ли? Python не делаетТочнее, не могуне могу найти имя:
def from_mapping(mapping) -> Trie:
NameError: name 'Trie' is not defined
Это'Стоит отметить, что эта ошибка не возникает, если фундаментальный тип (например,object
или жеint
) или стандартный тип библиотеки (например,collections.deque
) уточняется.
Что является причиной этой ошибки и как я могу это исправить?