为什么 None 缺少文档字符串?

Why does None lack a docstring?

据我所知,Python 中的每个内置对象都有一个文档字符串。除了,正如我今天刚发现的,None。这是为什么?

None除了存在外没有其他作用。它是 一个 实例,而不是类型,而其他内置函数总是 可调用 或者是某些东西的实例。

字符串、数字、布尔值等都有一个可调用类型对象,通常还具有特定的转换功能(bool()int()str())。 None 没有;它的类型不会产生任何结果,因为只有一个实例:

>>> type(None)
<type 'NoneType'>
>>> type(None)()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot create 'NoneType' instances

None 不是唯一这样的对象。 EllipsisNotImplemented 是其他此类对象:

>>> Ellipsis.__doc__ is None
True
>>> NotImplemented.__doc__ is None
True
>>> type(Ellipsis)()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot create 'ellipsis' instances
>>> type(NotImplemented)()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot create 'NotImplementedType' instances

它们都是哨兵,表示特定状态或值的对象,但在该功能之外没有用处。

因此,它们的意义可能在于它们的使用方式,而不是它们的创建方式。记录此内容的正确位置是 Datamodel reference documentation,而不是文档字符串。