【问题标题】:sys.getsizeof(int) return 400 bytessys.getsizeof(int) 返回 400 字节
【发布时间】:2018-10-15 07:03:31
【问题描述】:

我打算得到 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 字节对于整数意味着什么?

【问题讨论】:

  • Python 的整数仅受 RAM 限制,因此没有“maxint”。
  • 您看到的是列表中每个值的类型类的大小,而不是可以在解释器中表示的整数的最大大小。有关详细信息,请参阅stackoverflow.com/questions/10365624/…
  • 但是为什么In [13]: sys.maxsize Out[13]: 9223372036854775807@ForceBru
  • @riderdragon,这是列表、字符串、字典和许多其他容器不能有最大支持整数的最大大小

标签: python


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-09
    • 2020-09-21
    • 2018-09-17
    • 1970-01-01
    • 2016-06-22
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多