<p>您可以将其移植到Python(参见<a href="http://stupidpythonideas.blogspot.com/2015/06/hacking-python-without-hacking-python.html" rel="nofollow">"Hacking Python without Hacking Python"</a>)或IPython(参见<a href="http://ipython.org/ipython-doc/1/config/inputtransforms.html#ast-transformations" rel="nofollow">"Custom Input Transformations"</a>)。在</p>
<p>要允许<code>10 + 10 ?? func</code>,您需要<code>??</code>作为低优先级运算符。但是所有Python的低优先级操作符要么很重要(比如<code>and</code>),要么对int有意义(比如<code>|</code>)。
(见<a href="https://docs.python.org/3/reference/expressions.html#operator-precedence" rel="nofollow">Operator Precedence</a>)</p>
<p>选项:</p>
<ol>
<li>将其作为<code>|</code>插入,看起来像<a href="https://en.wikipedia.org/wiki/Pipeline_(Unix)" rel="nofollow">pipe</a>。这将是一个抽象语法树(AST)黑客攻击,可能会破坏使用<code>|</code>的导入库。在</li>
<li>加入一个新的操作符(但是不要使用<code>//</code>,因为这很重要)。你需要在字符串级别,在AST之前。在</li>
</ol>
<hr/>
<p>对您来说,充分利用Python和IPython的各种命令,完全跳过烦人的黑客攻击就足够了。在</p>
<p>首先,可以使用Python的幂运算符,而不是使用<code>sqrt</code>。在</p>
<pre><code>(10+10) ** 0.5
</code></pre>
<p>接下来,在Python/IPython中,下划线“<code>_</code>”表示“最后的结果”。您可以键入以下内容:</p>
^{pr2}$
<p>(IPython还允许<code>_14</code>或<code>Out[14]</code>表示“第14次输入的结果”,而<code>__</code>和{<cd13>}分别表示“倒数第二个结果”和“第三个到最后一个结果”。)</p>
<p>最后,使用IPython,如果行以斜杠开头,则可以使用不带括号或逗号的函数。(在IPython中输入<code>?</code>以查看更多信息,或转到<a href="http://ipython.org/ipython-doc/dev/interactive/reference.html#automatic-parentheses-and-quotes" rel="nofollow">here</a>。)</p>
<pre><code>In [6]: 10 + 10
Out[6]: 20
In [7]: /sqrt _
Out[7]: 4.47213595499958
</code></pre>