为什么在Python中使用pass
而不是像0
更短的内容?
E.g:
for i in range(10): pass
VS
for i in range(10): 0
使用pass
的唯一两个好处是:
0
pass
比0
使用pass
背后是否还有其他原因?
答案 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可能意味着整数或空操作,具体取决于上下文。这使得代码更难以阅读和模糊。