任何python对象至少有两个属性,引用计数和对象所属的类型,所以需要占用2个int大小,32位机器是8字节,64位机器是16字节。
引用计数和类型在CPython中用PyObject_HEAD结构体定义,分别是一个int整数和一个指针。
继承object的类的对象实例,在初始化化是会有一些默认属性,除了上面的PyObject_HEAD之外,还有__dict__,__weakref__等。所以一个类,即使没有任何自定义属性,其实例也会占用很多内存。
对象的属性全部是动态,使用__dict__保存,这个dict还要占用更多的内存,python内存也是个无底洞。
原文:http://www.cnblogs.com/shenxiang/p/4773667.html