内存中无值是什么?


问题内容

None在Python中,这是一个保留字,关于None内存的确切值,我想到的只是一个问题。我要记住的是,None内存中的表示形式为0或指向堆的指针。但是,指向内存中空白区域的指针都不有意义零值。因为当我测试以下内容时:

>>> None.__sizeof__()
16

事实证明,这None消耗了16个字节,实际上对于一个空值来说实在太多了。

那么,None实际上在内存中代表什么呢?


问题答案:

None 是单例对象,它不(几乎)不提供任何方法和属性,并且其唯一目的是表示某些特定操作没有任何价值的事实。

作为一个真实的对象,它仍然需要一些头,一些反射信息以及类似的东西,因此它占用了每个python对象占用的最小内存。