擅长:python、mysql、java
<p>问题是<code>root.after(200, self.repeat_colors(temp_cells, counter))</code>引起的无限循环。相反,您需要将<code>self.repeat_colors</code>作为lambda传递。你知道吗</p>
<p>所以现在发生的是立即调用<code>self.repeat_colors(temp_cells, counter)</code>,而不是等待200秒。因此,应该创建一个lambda函数,直到设置的时间激活。你知道吗</p>
<p>请记住,对于lambda表达式,如果值发生更改,则需要在lambda中定义它。因此,对于计数器,您需要执行<code>x=counter</code>之类的操作,以便lambda一定要使用正确的更新值。这通常会影响创建lambda表达式的循环之类的事情,在这种特殊情况下可能并不重要,但当它确实重要时,这是一个很好的习惯。你知道吗</p>
<p>更改此项:</p>
<pre><code>root.after(200, self.repeat_colors(temp_cells, counter))
</code></pre>
<p>对此:</p>
<pre><code>root.after(200, lambda x=counter: self.repeat_colors(temp_cells, x))
</code></pre>