Python:为什么存在int.numerator和int.denominator?

Dav*_*ter 21 python math int

int.numerator并且int.denominator是一个谜给我.

help(int.numerator) 状态:

最低项中有理数的分子

但据我所知,int这不是一个理性的数字.那么为什么这些属性存在呢?

Thi*_*ter 18

请参阅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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这个答案是完全正确的.这意味着通常,数字类与内置类型相同,但事实并非如此.沿着这条线讨论的一个问题是:为什么浮动没有分子和分母? (3认同)