sys.getsizeof(int) 返回 400 字节。

5

我想获取int类型的最大值

In [1]: import sys
In [2]: sys.getsizeof(int)
Out[2]: 400

这是否意味着Python中的maxint是2 ** 40?

然而,当我尝试时

In [5]: types = [int, float, complex, list, tuple, dict, set, True, False, None]
In [7]: [sys.getsizeof(type) for type in types]
Out[7]: [400, 400, 400, 400, 400, 400, 400, 28, 24, 16]

所有数据类型都是400字节。

对于整数来说,400字节意味着什么?


2
Python的整数只受RAM限制,因此没有所谓的“maxint”。 - ForceBru
你正在查看列表中每个值的类型类大小,而不是你的解释器可以表示的整数的最大大小。请参阅https://dev59.com/Amkv5IYBdhLWcg3wwjkI获取更多详细信息。 - BoboDarph
但是为什么 In [13]: sys.maxsize Out[13]: 9223372036854775807 @ForceBru - AbstProcDo
1
@riderdragon,这是列表、字符串、字典和许多其他容器可以拥有的最大大小,而不是支持的最大整数数量。 - Nidal
1个回答

7

在您的代码中,您获取的是类的大小而不是类的实例的大小。

调用int来获取实例的大小,例如以下代码

>>> sys.getsizeof(int())
24

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接