擅长:python、mysql、java
<p>我假设你的意思是<code>match</code>在:</p>
<pre><code>def translate(match):
return worddict[match.group(0)]
</code></pre>
<p>起源于。Python支持函数式编程的概念,其中可以将函数作为参数传递。你知道吗</p>
<p>如果你这样称呼<code>re.sub</code>为:</p>
<pre><code>rc.sub(translate, txt)
</code></pre>
<p><code>translate</code>是一个函数。而<code>rc.sub</code>所做的就是寻找匹配项。<strong>每次匹配</strong>,都会用生成的参数调用函数。结果是该函数的替代。你知道吗</p>
<p>另一个例子是<code>map</code>函数:</p>
<pre><code>def map(f, lst):
result = []
for x in lst:
result.append(f(x))
return result
</code></pre>
<p>因此,所发生的是用函数调用<code>map</code><strong>。然后迭代<code>lst</code>,对于每个元素<code>x</code>,用<code>x</code>调用</strong><code>f</code>。结果将附加到列表中。你知道吗</p>
<p>因此,您不必传递带有参数的<code>translate</code>来获得值,您可以传递函数,这样另一个函数就可以用几个(不同)值本身调用该函数。你知道吗</p>