Почему имя содержащего класса не распознается как аннотация функции возвращаемого значения? [дубликат]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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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