【问题标题】:how sys.getsizeof() giving different result [duplicate]sys.getsizeof() 如何给出不同的结果
【发布时间】:2018-06-14 12:22:14
【问题描述】:
import sys
print(sys.getsizeof(4))
print(sys.getsizeof(int))
print(sys.getsizeof(int()))

当我尝试运行上面的代码时,它会显示以下输出

28
400
24

但是由于括号内所有给定的东西都是int,所以它是如何给出不同的输出的。谁能解释一下?

【问题讨论】:

  • 第二个是不是一个int。这是 int
  • 它们不一样:一个是整数,一个是整数的类型,一个是返回整数的函数。

标签: python


【解决方案1】:

前两个明显不同:

>>> type(4)
<class 'int'>
>>> type(int)
<class 'type'>

由于优化了整数空间,3d 与第一个不同 - 您需要的位数越多,Python 在 4 - 0 的跳跃中所需的空间越小,并且您从那里开始:

>>> getsizeof(0)
24
>>> getsizeof(32984732)
28
>>> getsizeof(3298473232432432432)
36

实际上,即使1 也需要比0 更多的空间,因为这是下一个尺寸步骤。

【讨论】:

    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2015-08-21
    • 2018-09-16
    • 1970-01-01
    相关资源
    最近更新 更多