0
我不是在寻找一个恒定的记录最大值可用int
代表;我正在寻找一个int
可以占用的最大内存量。请看下面的代码:我们如何获得python int占用的字节数?
import sys
def print_and_execute(*args):
for s in args:
print(s, end = " == ")
r = eval(s)
print(r)
return
print_and_execute("type(5) ")
print_and_execute("sys.getsizeof(5)")
i = int()
print_and_execute("i")
print_and_execute("sys.getsizeof(i)")
i = 2937
print_and_execute("i")
print_and_execute("sys.getsizeof(i)")
print_and_execute("sys.maxsize")
print_and_execute("sys.getsizeof(sys.maxsize)")
对于我特定的机器,输出结果是:
type(5) == <class 'int'>
sys.getsizeof(5) == 28
i == 0
sys.getsizeof(i) == 24
i == 2937
sys.getsizeof(i) == 28
sys.maxsize == 9223372036854775807
sys.getsizeof(sys.maxsize) == 36
显然,一些int
s为24个字节长,其他都是28,还有一些人用36多少字节需要持有任何尺寸的int
?
Python整数可以扩展到必要的大小。换句话说,上限取决于有多少内存可用。 –
“一些整数是24个字节长” - 除0之外哪一个? –