据我所知,Python中的每个内置对象都有一个docstring。除了,正如我今天刚刚发现的那样,没有。这是为什么?
答案 0 :(得分:2)
None
除了存在之外没有其他功能。它是一个实例,而不是一个类型,而其他内置函数总是 callable 或者是某些实例。
字符串,数字,布尔值等都具有可调用类型对象,通常还具有特定的转换功能(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
它们都是 sentinels ,是指示特定状态或值的对象,但在该函数之外无效。
因此,它们可能对它们的使用方式有意义,而不是它们的创建方式。记录此内容的正确位置是Datamodel reference documentation,而不是文档字符串。