为什么在Python中使用pass而不是像0那样更短的东西?

时间:2015-08-29 22:12:39

标签: python coding-style

为什么在Python中使用pass而不是像0更短的内容?

E.g:

for i in range(10): pass

VS

for i in range(10): 0

使用pass的唯一两个好处是:

  1. 如果使用Python交互式解释器,它将输出0
  2. pass0
  3. 更容易理解

    使用pass背后是否​​还有其他原因?

2 个答案:

答案 0 :(得分:3)

答案:可能只是为了提高可读性。

我挖掘了old version of python's source code (version 0.9.1)并在名为doc / tut.tex的文件中找到了这个:

 \subsubsection{Pass Statements}

 The {\tt pass} statement does nothing.
 It can be used when a statement is required syntactically but the
 program requires no action.
 For example:
 \bcode\begin{verbatim}
 >>> while 1:
 ...       pass # Busy-wait for keyboard interrupt
 ...
 \end{verbatim}\ecode

然后在名为src / graminit.c的文件中引用它(没有太多其他文档):

   {269, "pass_stmt", 0, 3, states_13,
    "\000\000\000\000\002\000\000\000\000\000\000\000"},

我想只是将pass添加到python的基础级词汇表中。

这也是在src / compile.c:

   case pass_stmt:
           break;

和一个非常酷的文件,名为src / Grammar,它对它进行了一些引用,并在顶部有一个更改日志,标记自己为“Grammar for Python,版本4”,但没有记录对pass_stmt的更改。

我找不到任何其他东西。所以看起来pass永远存在于python中,并且python项目开头的唯一文档说它“什么都不做”。因此,我认为我们可以得出结论,这是不可能的,可读的。

答案 1 :(得分:2)

查看Zen of Python,您可以看到一些原因;

  • 可读性很重要。
  • 明确胜于隐性。
  • 面对歧义,拒绝猜测的诱惑。

pass没有错误。 虽然0可能意味着整数或空操作,具体取决于上下文。这使得代码更难以阅读和模糊。