擅长:python、mysql、java
<p>您希望<em>部分应用</em>函数<code>addValue</code>-给出<code>val</code>参数,而不是{<cd3>}。通常有两种方法:</p>
<p>第一个被称为<em>currying</em>,并用在interjay的答案中:不是一个有两个参数的函数,<code>f(a,b) -> res</code>,而是编写一个第一个参数的函数,它返回另一个接受第二个参数的函数<code>g(a) -> (h(b) -> res)</code></p>
<p>另一种方法是<code>functools.partial</code>对象。它使用对函数的检查来确定函数需要运行的参数(在您的例子中是<em>func</em>和<em>val</em>)。您可以在创建partial时添加额外的参数,一旦调用partial,它将使用所有给定的额外参数。在</p>
<pre><code>from functools import partial
@partial(addValue, val=2 ) # you can call this addTwo
def computeSomething( x ):
return x
</code></pre>
<p>对于这个<em>部分应用</em>问题,Partials通常是一个简单得多的解决方案,尤其是对于多个参数。在</p>