>>> sys.getsizeof(int) 436 #? does this mean int occupies 436 bytes . >>> sys.getsizeof(1) 12 #12 bytes for int object,is this the memory requirement.
我认为python中的int由4个字节表示,为什么它报告12个字节
请有人解释为什么当int只使用4个字节时报告12个字节
解决方法
是的,int实例在您的系统上占用12个字节.整数(与任何对象一样)具有属性,即指向其他对象的指针,这些属性占用了超出对象自身值所使用的内存空间.因此整数值为4个字节,指向__class__的指针为4个字节(否则,Python不知道对象属于什么类型以及如何开始解析从int类及其父类继承的属性名称),另一个4表示对象的引用计数,由垃圾收集器使用.
int类型占用系统上的436个字节,它将指向int类的各种方法和其他属性,以及Python对类所需的其他内务处理信息. int类在标准Python实现中用C语言编写;你可以去查看源代码,看看里面有什么.