哪个 python 内置对象在内存中的大小最小?

Which python built-in object has the least size in memory?

# On Python 3.9.2
>>> sys.getsizeof(None)
16
>>> sys.getsizeof(0)
24
>>> sys.getsizeof(True)
28

我只想知道是否有任何对象的大小小于 None 对象的大小,即小于 16 字节。

根据@quamrana的建议,我尝试根据大小对所有内置对象进行排序,并进行了以下观察。 我使用的代码片段:

import builtins, sys, inspect

classes = [i for i in builtins.__dict__.values() if inspect.isclass(i)]
objects = []
for i in classes:
    try:
        objects.append((i, sys.getsizeof(i())))
    except:
        ...
objects.sort(key=lambda x: x[1])
for i in objects[:10]:
    print(i)

上面代码段的标准输出是:

(<class 'object'>, 16)
(<class 'bool'>, 24)
(<class 'float'>, 24)
(<class 'int'>, 24)
(<class 'complex'>, 32)
(<class 'bytes'>, 33)
(<class 'tuple'>, 40)
(<class '_frozen_importlib.BuiltinImporter'>, 48)
(<class 'str'>, 49)
(<class 'bytearray'>, 56)

这些是在我的机器上运行的 Python 3.9.2 上大小最小的 10 个对象。 根据 @martineau 的评论,每个对象的大小因不同的 python 版本和机器而异。

None 将是据我所知最小的可用对象,与系统架构、解释器、版本无关。