Python 3.5+typingфункция
typing.cast
приведение и отладка
Подсказывает средству проверки типов, что значение имеет указанный тип; во время выполнения просто возвращает значение без изменений.
Синтаксис
typing.cast(typ, value)
Главная ловушка: cast ничего не преобразует и не проверяет — в отличие от int(x), он не трогает значение, а только затыкает средство проверки типов. Злоупотребление им прячет настоящие ошибки, ведь checker молча поверит любому вашему утверждению. И порядок аргументов обратный привычному: сначала тип, потом значение (у assert_type — наоборот).
Примеры
# Python 3.9+
from typing import cast
print(cast(int, 42)) # → 42
print(type(cast(str, 42)).__name__) # → int
print(cast('list[int]', [1, 2])) # → [1, 2]
data = {'x': 1}; print(cast(dict[str, int], data) is data) # → True
print(cast(int, '42') + 1) # → TypeError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности