擅长:python、mysql、java
<p><code>client</code>变量是在外部作用域中定义的,因此在运行<code>lambda</code>时,它将始终设置为列表中的最后一个客户端。在</p>
<p>要获得预期结果,可以给lambda一个带有默认值的参数:</p>
<pre><code>passIf = lambda client=client: client.returncode(CMD2) == 0
</code></pre>
<p>由于在定义lambda时计算默认值,因此其值将保持正确。在</p>
<p>另一种方法是在函数中创建lambda:</p>
^{pr2}$
<p>这里lambda引用<code>createLambda</code>函数中的<code>client</code>变量,该变量具有正确的值。在</p>