sys.getsizeof()如何给出不同的结果

时间:2018-06-14 12:22:14

标签: python

import sys
print(sys.getsizeof(4))
print(sys.getsizeof(int))
print(sys.getsizeof(int()))

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

28
400
24

但由于括号内的所有给定事物都是int,所以它是如何给出不同的输出。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

前两个是不同的,因为这样做很明显:

<TextView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:drawablePadding="15dp"
     android:drawableLeft="@drawable/google"
     android:text="@string/textGoogle" />

由于优化整数空间,3d与第一个不同 - 你需要的位越多,Python在4 - 0的跳跃中所需的空间就越小,你就会从那里上升:

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

实际上,即使>>> getsizeof(0) 24 >>> getsizeof(32984732) 28 >>> getsizeof(3298473232432432432) 36 需要比1更多的空间,因为这是下一个尺寸步骤。