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

 

posted @ 2018-06-13 09:03  快乐的欧阳天美1114  阅读(202)  评论(0编辑  收藏  举报