为什么在 Python 中使用 pass 而不是像 0 这样更短的东西?
Why use pass instead of something shorter like 0 in Python?
为什么在 Python 中使用 pass
而不是像 0
这样更短的东西?
例如:
for i in range(10): pass
对比
for i in range(10): 0
使用 pass
的唯一两个好处是:
- 如果使用Python交互式解释器,它将输出
0
pass
比0
更容易理解
使用pass
还有其他原因吗?
答案:可能只是为了便于阅读。
我翻阅了 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,
"[=11=]0[=11=]0[=11=]0[=11=]0[=11=]2[=11=]0[=11=]0[=11=]0[=11=]0[=11=]0[=11=]0[=11=]0"},
我想这只是将 pass
添加到 python 的相当基础的词汇表中。
这也是,在 src/compile.c:
case pass_stmt:
break;
和一个非常酷的文件 src/Grammar,它对它进行了一些引用,并在顶部有一个更改日志,它自己标记 "Grammar for Python, version 4" 但没有记录对 pass_stmt 的更改。
而且我找不到其他任何东西。所以似乎 pass
一直在 python 中,并且 python 项目开始的唯一文档说它 'does nothing.' 所以我认为我们可以得出结论它什么也不做,可读。
查看Zen of Python,可以看出一些原因;
- 可读性很重要。
- 显式优于隐式。
- 面对歧义,拒绝猜测。
毫无疑问 pass
是什么。
而 0 可能表示整数或空操作,具体取决于上下文。这使得代码更难阅读和含糊不清。
为什么在 Python 中使用 pass
而不是像 0
这样更短的东西?
例如:
for i in range(10): pass
对比
for i in range(10): 0
使用 pass
的唯一两个好处是:
- 如果使用Python交互式解释器,它将输出
0
pass
比0
更容易理解
使用pass
还有其他原因吗?
答案:可能只是为了便于阅读。
我翻阅了 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,
"[=11=]0[=11=]0[=11=]0[=11=]0[=11=]2[=11=]0[=11=]0[=11=]0[=11=]0[=11=]0[=11=]0[=11=]0"},
我想这只是将 pass
添加到 python 的相当基础的词汇表中。
这也是,在 src/compile.c:
case pass_stmt:
break;
和一个非常酷的文件 src/Grammar,它对它进行了一些引用,并在顶部有一个更改日志,它自己标记 "Grammar for Python, version 4" 但没有记录对 pass_stmt 的更改。
而且我找不到其他任何东西。所以似乎 pass
一直在 python 中,并且 python 项目开始的唯一文档说它 'does nothing.' 所以我认为我们可以得出结论它什么也不做,可读。
查看Zen of Python,可以看出一些原因;
- 可读性很重要。
- 显式优于隐式。
- 面对歧义,拒绝猜测。
毫无疑问 pass
是什么。
而 0 可能表示整数或空操作,具体取决于上下文。这使得代码更难阅读和含糊不清。