如何在Python中指定int8/int16

har*_*rry 2 python

Python3中int类型默认为int32或int64。
声明变量时如何指定int8/int16?
在Python中不可能吗?
如果int对象很小,不能指定int8/int16,那就浪费内存了。

Bro*_*ark 7

Python 没有任何对 8 位或 16 位整数的内置支持。另一方面,NumPy 确实支持您正在寻找的大小:

import numpy as np
print(np.uint8(22))
Run Code Online (Sandbox Code Playgroud)

  • @BrokenBenchmark python 对象不仅仅是值,还有与 python 对象关联的其他数据。`int` 为 24 字节,而 `np.uint8` 为 25 字节。(虽然这是 0,但 int 在一个小的非零值时实际上最多可达 28 个字节)。Numpy 当然也有数组,每添加一个新的“np.uint8”值,只需要一个额外的字节,但基础大小更大。 (4认同)

Ein*_*che 5

Afaik python 根据数字的大小选择类型,并且无法指定您希望 python 使用哪种 int 类型。如果您担心内存浪费,Python 可能不是正确的选择。