代码之家  ›  专栏  ›  技术社区  ›  Gerges

为什么在python 3中整数没有大小限制?

  •  1
  • Gerges  · 技术社区  · 9 年前

    在python 3中,整数的值没有限制,如中所述 this post .

    这确实有一个有趣的副作用 numpy ,其中根据整数值,可能会得到一个对象或整数。

    np.array(int('9'*3)).dtype
    # int64
    
    np.array(int('9'*38)).dtype
    # object
    
    np.array(2**64-1).dtype
    # uint64
    

    1 回复  |  直到 9 年前
        1
  •  2
  •   kindall    9 年前

    过去有一个 int 类型和a long 类型,值自动从 到 长的 整数 再也抱不住他们了。 长的 以牺牲一些性能为代价,使用尽可能多的字节来保存值。

    然而,有可能有一个 长的 那可能是一个 整数 ,并且有特殊的文字语法 长的 价值观也就是说, 0L 作为一个 鉴于 0 作为一个 . 这些值是相等的,但类型仍然不同。

    在Python 3中,这两种类型是统一的。只有一种类型,但其内部表示使用机器整数(32位或64位,取决于Python版本)或任意长度的整数(如 )根据需要。