Python Glossary English

все Python 3numbersпонятие

numbers.Rational

числовая башня

Абстрактный класс рациональных чисел: Real плюс numerator и denominator. Сюда входят int, bool и Fraction.

Синтаксис

isinstance(x, numbers.Rational)

float — не Rational, хотя любой float точно равен дроби и умеет as_integer_ratio(): у него нет numerator и denominator. А вот int — Rational, и (5).numerator == 5, (5).denominator == 1. Поэтому функция, принимающая Rational, получит int и Fraction, но не 0.5.

Примеры

import numbers
from fractions import Fraction
print([isinstance(v, numbers.Rational) for v in (3, Fraction(1, 3), 0.5)])  # → [True, True, False]
print((5).numerator, (5).denominator, (0.5).as_integer_ratio())  # → 5 1 (1, 2)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности