Python Glossary English

Python 3.14+typingфункция

typing.evaluate_forward_ref()

интроспекция аннотаций

Вычисляет ForwardRef (отложенную строковую аннотацию) в реальный тип, рекурсивно раскрывая вложенные ссылки. Python 3.14+.

Синтаксис

typing.evaluate_forward_ref(forward_ref, *, owner=None, globals=None, locals=None, type_params=None, format=annotationlib.Format.VALUE)

Напрямую её вызывать приходится редко: аннотации целой функции или класса разворачивает typing.get_type_hints(), а эта функция нужна, когда на руках отдельный ForwardRef, вынутый из чужой аннотации. Имя ищется в переданных owner/globals/locals — если оно там не видно, будет NameError; с format=annotationlib.Format.FORWARDREF ссылка вместо ошибки останется нераскрытой.

Примеры

import typing
ref = typing.ForwardRef('int')
print(typing.evaluate_forward_ref(ref))    # → <class 'int'>
print(typing.evaluate_forward_ref(typing.ForwardRef('list[int]')))   # → list[int]
print(typing.evaluate_forward_ref(typing.ForwardRef('T'), globals={'T': str}))   # → <class 'str'>
print(typing.evaluate_forward_ref(ref) is int)   # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности