Подтвердить что ты не робот

Python: Почему существуют int.numerator и int.denominator?

int.numerator и int.denominator являются для меня загадкой.

help(int.numerator):

числитель рационального числа в младших членах

Но, насколько я знаю, int не является рациональным числом. Итак, почему эти свойства существуют?

4b9b3361

Ответ 1

См. http://docs.python.org/library/numbers.html - int (numbers.Integral) является подтипом numbers.Rational.

>>> import numbers
>>> isinstance(1337, numbers.Integral)
True
>>> isinstance(1337, numbers.Rational)
True
>>> issubclass(numbers.Integral, numbers.Rational)
True

Знаменатель int всегда 1, а его числитель - это само значение.

В PEP 3141 вы найдете подробную информацию о реализации различных типов номеров, например. доказывая предыдущее утверждение:

@property
def numerator(self):
    """Integers are their own numerators."""
    return +self

@property
def denominator(self):
    """Integers have a denominator of 1."""
    return 1