Infinite integer in Python

后端 未结 3 650
再見小時候
再見小時候 2021-02-11 12:15

Python 3 has float(\'inf\') and Decimal(\'Infinity\') but no int(\'inf\'). So, why a number representing the infinite set of integers is m

3条回答
  •  北恋
    北恋 (楼主)
    2021-02-11 12:44

    You are right that an integer infinity is possible, and that none has been added to the Python standard. This is probably because math.inf supplants it in almost all cases (as Martijn stated in his comment).

    In the meantime, I added an implementation of extended integers on PyPI:

    In [0]: from numbers import Integral, Real
    
    In [0]: from extended_int import int_inf, ExtendedIntegral, Infinite
    
    In [0]: i = int_inf
    
    In [4]: float(i)
    Out[4]: inf
    
    In [5]: print(i)
    inf
    
    In [6]: i ** i
    
    Out[6]: inf
    
    In [7]: i
    Out[7]: inf
    
    In [9]: isinstance(i, Real)
    
    Out[9]: True
    
    In [10]: isinstance(i, Integral)
    
    Out[10]: False
    
    In [11]: isinstance(i, Infinite)
    
    Out[11]: True
    
    In [12]: isinstance(i, ExtendedIntegral)
    
    Out[12]: True
    
    In [13]: isinstance(2, ExtendedIntegral)
    
    Out[13]: True
    
    In [14]: isinstance(2, Infinite)
    
    Out[14]: False
    

提交回复
热议问题