为什么 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
不是唯一这样的对象。 Ellipsis
和 NotImplemented
是其他此类对象:
>>> 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,而不是文档字符串。
据我所知,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
不是唯一这样的对象。 Ellipsis
和 NotImplemented
是其他此类对象:
>>> 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,而不是文档字符串。