все Python 3numbersпонятие
numbers.Integral
числовая башня
Абстрактный класс целых чисел: Rational плюс битовые операции и __index__. Сюда входят int и bool.
Синтаксис
isinstance(x, numbers.Integral)
isinstance(True, numbers.Integral) — True: bool наследует int, и проверка «целое число» пропускает флаги. Если они не нужны, исключайте bool явно. Обратное: 3.0 не Integral, хотя (3.0).is_integer() истинно, — тип проверяется, а не значение. Библиотеки вроде NumPy регистрируют свои целые здесь, поэтому Integral надёжнее, чем isinstance(x, int).
Примеры
import numbers
print(isinstance(True, numbers.Integral), isinstance(3.0, numbers.Integral)) # → True False
def is_count(x):
return isinstance(x, numbers.Integral) and not isinstance(x, bool)
print(is_count(5), is_count(True)) # → True False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности