python 中整数对象的实际大小

Actual size of an integer object in python

为什么下面会产生如此不同的结果?

>>> sys.getsizeof(int) # same as sys.getsizeof(object), sys.getsizeof(type)
400

>>> sys.getsizeof(1)
28

item的实际大小1是否等于对象的大小(400)+实际整数值的大小(28)=428,或者integer/object创作工作在这里?

这些对象的类型不同,这就是它们大小不同的原因:

>>> type(int)
<class 'type'>
>>> sys.getsizeof(type)
416
>>> type(object)
<class 'type'>
>>> type(type)
<class 'type'>

>>> type(1)
<class 'int'>
>>> sys.getsizeof(1)
28

关于大多数对象的一般大小及其缩放方式,有一个很好的答案here

郑重声明,<class 'type'> metaclass and there is a super long answer here 说明了这些是什么以及为什么。