Python Glossary English

Python 3.14+annotationlibфункция

annotationlib.annotations_to_string()

строковое представление

Превращает словарь уже вычисленных аннотаций в словарь строк, как в формате STRING; строки остаются как есть.

Синтаксис

annotationlib.annotations_to_string(annotations)

Это помощник для собственной функции __annotate__, которой надо поддержать формат STRING, а исходного текста нет. Значения переводятся через type_repr, поэтому int становится 'int', а не "<class 'int'>", как дал бы str() или repr(). Значение, уже бывшее строкой, остаётся без кавычек. Ссылки вперёд она не спасает: на вход идут готовые объекты, так что для «аннотации как в исходнике» нужен get_annotations(..., format=Format.STRING).

Примеры

# Python 3.14+
from annotationlib import annotations_to_string
ann = {'a': int, 'b': list[str], 'c': 'Later'}
print(annotations_to_string(ann))  # → {'a': 'int', 'b': 'list[str]', 'c': 'Later'}
print({k: repr(v) for k, v in ann.items()}['a'])  # → <class 'int'> — repr так не умеет

См. также

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