为什么 Python 使用 None 类型提示而不是 NoneType?

Bea*_*ker 5 python mypy python-typing

对于 Python 的None对象,使用类型提示None而不是其实际类型NoneType。来自文档

请注意,作为类型提示的 None 是一种特殊情况,并被 type(None) 替换。

我觉得这令人困惑,没有给出进一步的解释。

有谁知道这背后的原因?

Mar*_*lli 3

这只是一个设计选择。这背后没有什么特别的原因。

写作def fn(x: None) -> Nonedef fn(x: NoneType) -> NoneType(恕我直言也更清晰)更简洁。

它也与其他类型提示一致:ListDict等,它们都是第一个字母大写的单个单词(与关联的内置函数相同)。

  • 接受您的回答,但不同意您对此设计选择的评估。List 和 Dict 显然是类型,但 None 既是值又是类型,这让我感到不舒服。NoneType 会更清楚。 (2认同)