<h2>总体答案</h2>
<p>前三个撇号开始一个多行字符串。下一个撇号只是字符串内容的一部分。在</p>
<h2>检查结果</h2>
<p>脚本将字符串存储在变量<strong>中。在与<code>python -i pox.py</code>交互运行代码后,很容易直接看到解析的<a href="https://docs.python.org/2.7/glossary.html#term-docstring" rel="nofollow noreferrer">docstring</a>:</p>
<pre><code>>>> print __doc__
'true
#export OPT="-u -O"
export OPT="-u"
export FLG=""
if [ "$(basename $0)" = "debug-pox.py" ]; then
export OPT=""
export FLG=" debug"
fi
if [ -x pypy/bin/pypy ]; then
exec pypy/bin/pypy $OPT "$0" $FLG "$@"
fi
if type python2.7 > /dev/null 2> /dev/null; then
exec python2.7 $OPT "$0" $FLG "$@"
fi
exec python $OPT "$0" $FLG "$@"
</code></pre>
<p>注意第四个撇号是如何作为docstring的一部分保留的。在</p>
<h2>细节</h2>
<p>根据<a href="https://docs.python.org/2.7/library/tokenize.html#module-tokenize" rel="nofollow noreferrer"><em>tokenize</em></a>模块,下面是Python如何查看上述代码:</p>
^{pr2}$
<h2>标记化脚本</h2>
<p>下面是一个python2.7脚本,它标记<em>痘.py</em>脚本:</p>
<pre><code>from __future__ import print_function
import tokenize
import token
with open('pox.py') as f:
for tok in tokenize.generate_tokens(f.readline):
tok_type, tok_str, (srow, scol), (erow, ecol), logical_lineno = tok
print('%-10s: %r' % (token.tok_name[tok_type], tok_str))
</code></pre>