все Python 3numbersпонятие
numbers.Number
числовая башня
Корень иерархии числовых абстрактных классов: isinstance(x, numbers.Number) — проверка «это вообще число».
Синтаксис
isinstance(x, numbers.Number)
Иерархия: Number → Complex → Real → Rational → Integral. Number не требует ни одного метода, поэтому numbers.Number() создаётся без ошибки, а isinstance(x, Number) истинно для int, bool, float, complex, Fraction и Decimal. Строка '5' числом не считается. Свой тип включается через Number.register(MyType) — без проверки, что он что-то умеет.
Примеры
import numbers
from decimal import Decimal
from fractions import Fraction
values = [True, 3, 2.5, 1j, Fraction(1, 3), Decimal('1.5'), '5']
print([isinstance(v, numbers.Number) for v in values]) # → [True, True, True, True, True, True, False]
import numbers
print(numbers.Integral.__mro__[1].__name__, numbers.Rational.__mro__[1].__name__, numbers.Real.__mro__[1].__name__, numbers.Complex.__mro__[1].__name__) # → Rational Real Complex Number
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности