有少数的常量存在于内置命名空间中。它们是:
- False:bool 类型的假值。给 False 赋值是非法的并会引发SyntaxError。
- True:bool 类型的真值。给 True 赋值是非法的并会引发SyntaxError。
- None:NoneType 类型的唯一值。None 经常用于表示缺少值,当因为默认参数未传递给函数时。给 None
赋值是非法的并会引发SyntaxError。 - NotImplemented:双目运算特殊方法(如
__eq__(), __lt__(), __add__(), __rsub__()
等)应返回的特殊值,用于表示运算没有针对其他类型的实现;也可由原地双目运算特殊方法(如__imul__(), __iand__()
等)出于同样的目的而返回。它不应被作为布尔值来解读。
注解: 当二进制(或就地)方法返回 “NotImplemented“时,解释器将尝试对另一种类型(或其他一些回滚操作,取决于运算符)的反射操作。如果所有尝试都返回 “NotImplemented“,则解释器将引发适当的异常。错误返回的 “NotImplemented“将导致误导性错误消息或返回到 Python 代码中的“NotImplemented“值。
注解: NotImplementedError 和 NotImplemented 不可互换,即使它们有相似的名称和用途。有关何时使用它的详细信息,请参阅NotImplementedError。
在 3.9 版更改: 作为布尔值来解读 NotImplemented 已被弃用。虽然它目前会被解读为真值,但将同时发出DeprecationWarning。它将在未来的 Python 版本中引发TypeError。 - Ellipsis:与省略号文字字面“…”相同。特殊值主要与用户定义的容器数据类型的扩展切片语法结合使用。
-
__debug__
:如果 Python 没有以 -O 选项启动,则此常量为真值。另请参见 assert 语句。
注解: 变量名None,False,True 和 __ debug__ 无法重新赋值(赋值给它们,即使是属性名,将引
发SyntaxError ),所以它们可以被认为是“真正的”常数。