Python Glossary English

Python 3.5+Аннотации и typingпонятие

typing.Any

any

Специальный тип: совместим с любым типом. Отключает проверку типов. Используется при миграции кода или для действительно динамических значений.

Синтаксис

from typing import Any
x: Any = ...

Any заразен: всё, что вы достали из Any-значения, тоже становится Any, и проверка молча гаснет в целом куске кода — поэтому одна ленивая аннотация способна обесценить типизацию всего модуля. Если смысл в том, что подойдёт любой объект, но пользоваться им вы собираетесь осторожно, честнее написать object: анализатор тогда заставит сузить тип перед вызовом методов. Any — это осознанное «я отключаю проверку здесь», а не «я пока не придумал тип».

Примеры

# Python 3.9+
from typing import Any
def log(value: Any) -> None: print(value)
log(42)  # → 42
log('text')  # → text
log([1, 2, 3])  # → [1, 2, 3]
data: list[Any] = [1, 'a', None, 3.14]  # смешанный список
print(type(data[0]))  # → <class 'int'>
print(Any)  # → typing.Any

См. также

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