Python Glossary English

все 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Сообщить о неточности