擅长:python、mysql、java
<p>免责声明:这个答案是“老”的,因为我试图解决它-但<strong>没有</strong>,直到Nae发布了重复。要进一步解释发生了什么:</p>
<p>问题是,当你按下按钮时,你的lambda会被计算出来。
{cd1>的值将在此时打印。您可以通过使用<a href="https://stackoverflow.com/a/49083209/7505395">Nae' answer</a>在创建lambda时为lambda提供一个<code>somevariable</code>的快照来修复<code>somevariable</code>的当前值,为了使这一点更清楚,我将其重新格式化为:</p>
<pre><code>command= lambda s=somevariable: printout(s))
</code></pre>
<p>为了明确lambda使用<code>s</code>,它在此时取<code>somevariable</code>的值,当调用时,将打印<code>s</code>。在</p>
<p>完整示例:</p>
^{pr2}$
<p><a href="https://i.stack.imgur.com/zaiAN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zaiAN.png" alt="pressed buttons 1-4 in row"/></a></p>