Python基础:内置常量
本文根据Python 3.6.5的官文Built-in Constants编写,官文比较短,大家可以直接看原文。
有一些存在于 内置名称空间(the built-in namespace) 的常量,如下:
False
True
上面两个都是bool型,不可以被赋值。
None
类型NoneType的唯一的值。None经常被用于表示一个值得缺席,被作为默认参数时不会被传送给函数。
也不可以被赋值。
NotImplemented
这个常量的解释较多,也应该更复杂一些咯。孤的理解就是,字面意思,提示 没实现。
这是一个特殊的值,会被一些二元魔法方法(the binary special methods, e.g. __eq__(), __lt__(), __add__(), __rsub__(), etc.)返回,用于指出对一些类型执行这些方法时失败了,没有提供相应的实现;还有一些in-place二元魔法方法(e.g. __imul__(), __iand__())也会以同样的目的返回这个常量。
它的真值为True。
注意:当上述的二进制魔法方法返回NotImplemented时,解释器会对其它类型使用此方法。如果所有的尝试都返回NotImplemented,解释器会产生相应的异常。不正确的返回NotImplemented会导致错误消息被误解,或者NotImplemented值被返回到Python code(然后呢?)。
注意:NotImplementedError和NotImplemented是不可以互换的,虽然它们有相似的名称和目的。
Ellipsis
和...相同。
翻译估计有些问题,看原文引用:
Special value used mostly in conjunction with extended slicing syntax for user-defined container data types.
大家可以参考文章:python小结之Ellipsis对象,原文截图(较小):
讲的很详细,对于第三点,还需要更多试验。
看来官文中的解释太简单了啊,应该还有更多官文的介绍。
__debug__
如果Python启动时没有使用-O(哦)选项,其值为True,查看assert语句官文获取更多信息。
关于-O选项的介绍:
-O : optimize generated bytecode slightly; also PYTHONOPTIMIZE=x
另外,还有几个常量是由site模块在Python启动期间导入(自动导入site可以使用-S命令行选项禁止)它期间添加到 内置名称空间的,但这些常量对于交互式解释器外壳(the interactive interpreter shell)很有用,但不应该在程序中使用,如下:
quit(code=None)
exit(code=None)
上面两个会经常用到。
copyright
credits
license