Python 3.5+typingпонятие
typing.SupportsRound
протоколы Supports*
Runtime-проверяемый протокол «поддерживает round()» (есть __round__).
Синтаксис
isinstance(obj, typing.SupportsRound)
Протокол обобщённый: SupportsRound[T] параметризуется типом, который вернёт round(). Как и прочие Supports*, isinstance проверяет только наличие __round__ — не его сигнатуру и не поддержку второго аргумента ndigits, так что True не гарантирует, что round(x, 2) не упадёт.
Примеры
from typing import SupportsRound
from decimal import Decimal
print(isinstance(5, SupportsRound)) # → True
print(isinstance('3.7', SupportsRound)) # → False
print(isinstance(Decimal('2.5'), SupportsRound)) # → True
print(isinstance(1 + 2j, SupportsRound)) # → False
print(issubclass(int, SupportsRound)) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности