python - 子类在内存中需要多少空间

时间:2013-05-23 12:30:49

标签: python class object memory space

假设我创建了一个名为A()的类,其中包含两个自定义方法。 当我实例化它时,将在该实例的内存表示中的某个地址中创建一个对象。 现在我创建一个A的子类,例如B(A),并在其中定义一个自定义方法。 我的问题是,当我实例化B时,在内存中创建的对象也会“包含”A类的数据,即两个自定义方法?

1 个答案:

答案 0 :(得分:3)

该实例仅引用它的类。除了类定义之外,不需要额外的内存来保存这两种方法。

从内存的角度来看,类定义本身不过是对基类的重新引用的元组,对它的元类型(默认为type())的引用和属性的字典(其中包括所有方法。)

实例只是对类的引用,加上属性字典或使用__slots__时的一组固定属性(后者更节省内存但不允许设置任意额外属性)。

相关问题