int实例的字节数比其继承的类少

时间:2018-12-06 15:38:15

标签: python

当我尝试sys.getsizeof:

>>> import sys
>>> sys.getsizeof(int)
400
>>> sys.getsizeof(2)
28

我对结果感到困惑:

2是int类的实例,但字节数比其继承的类少。

>>> sys.getsizeof(list)
400
>>> sys.getsizeof(list("list"))
120

列表也是一样。

2是否不从int类继承?

1 个答案:

答案 0 :(得分:2)

int是一个类,表示它是type对象:

>>> type(int)
<class 'type'>
>>> from sys import getsizeof
>>> getsizeof(int)
400

sys.getsizeof返回该对象的大小,而不是其实例。使用()创建int的实例并查看其大小

>>> getsizeof(int())
24
>>> getsizeof(int(2))
28

>>> getsizeof(0)
24
>>> getsizeof(2)
28

这不仅适用于内置类型,使用用户定义的类也可以观察到相同的行为:

>>> class a:
...     pass
... 
>>> getsizeof(a)
1056
>>> getsizeof(a())
56
>>> obj = a()
>>> getsizeof(obj)
56