如果我们有其它语言的基础在使用Python开发的时候,你也许会好奇:为什么 Python 有这么独特的 pass 语句,而别的语言却没有?小编就通过这个机会来给大家详细说说Python为什么要有pass语句。
Python 到底出于什么原因才来这样设计呢,是为了解决大部分编程语言都要面对的共性问题,还是因为它有自己的新发现,所以创造出来一个新的特性?
换个角度来看:Python 中为什么要有 pass 语句,它能解决什么问题(好处),如果没有它,会导致什么问题(坏处)?本文将从两个维度展开分析。
(一)对人:作为空间占位符
我把它看作是一种言简意赅的注释方式,等于是说“这里先预留位置,回头再补上具体的代码实现”。比如在多层的 if-elif-else 结构中,我们可以先把判断条件写好,然后在对应的块中写上 pass,以后再慢慢完善。
pass 作为空间占位符,主要可以方便我们构思局部的代码结构,有一定的辅助提醒作用。
但是,若作为一种注释方式,它就显得太单薄了,比不上写“# todo: xxxx”,后者也会被 IDE 用颜色突显,而且意思更明确。虽然写起来简单,但它也引入了一个看似多余的关键字 pass。
(二)对机器:为了语法完整性
对于前一条的用法,pass 出现在代码中的位置在理论上是不受限的。
但是,我们经常使用 pass 时,基本是在冒号的下一行,而且在该层缩进的代码块中,只有这一条语句。
我们可以设想下,如果不写它,会怎样?答案是会报缩进错误。
因为 Python 使用缩进来划分代码块,而冒号标识着要出现新的缩进代码块,所以这个例子会报缺少缩进代码块。
最后,Python 使用 pass 语句,是为了支持纯粹空操作的代码块(空函数、空类、空的循环控制块等等),有了它,还能额外表达出一种占位符的语义。