python中整数对象的实际大小

时间:2019-10-16 22:28:04

标签: python python-internals

为什么以下内容会产生不同的结果?

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

>>> sys.getsizeof(1)
28

项目1的实际大小等于对象的大小(400)+实际整数值(28)的大小= 428,还是整数/对象创建在这里的工作原理?

1 个答案:

答案 0 :(得分:3)

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

>>> 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,关于这些是什么以及为什么,答案很长。here