什么结构是存储在内存中的Python对象?

时间:2010-10-31 10:33:47

标签: python object python-internals

说我有一个A类:

class A(object):
    def __init__(self, x):
        self.x = x

    def __str__(self):
        return self.x

我使用sys.getsizeof来查看A实例的字节数:

>>> sys.getsizeof(A(1))
64
>>> sys.getsizeof(A('a'))
64
>>> sys.getsizeof(A('aaa'))
64

如上面的实验所示,无论A是什么,self.x对象的大小都是相同的。

所以我想知道python如何在内部存储一个对象?

2 个答案:

答案 0 :(得分:23)

答案 1 :(得分:1)

在新类实例的情况下,getsizeof()返回由{C}函数返回的PyObject引用的大小PyInstance_New()

如果您想要所有对象大小的列表,请检查this