<p>从你的问题中,我大胆地说:</p>
<blockquote>
<p>Then we define our function <strong>accepting a getter</strong> as a default argument</p>
<pre><code>def move_selected(file_i = test.get()):
global test
test.increment()
print(file_i)
print(test)
</code></pre>
<p>[Why doesn't it update?] Are we not supposed to <strong>pass functions</strong> as default arguments?</p>
</blockquote>
<p>您没有传递/接受getter/函数。您正在传递/接受调用该getter的<strong>结果。下面是如何通过/接受getter。您所要做的就是将<code>()</code>向下移动,因此默认值实际上是getter函数,您可以在以后使用/调用它</p>
<pre><code>def move_selected(file_i = test.get):
global test
test.increment()
print(file_i())
print(test)
</code></pre>
<p>然后输出:</p>
<pre><code>1
1
2
2
</code></pre>
<p>仍然不知道为什么投票被否决,因为这表明他们没有按照自己说的去做,以及如何正确地去做,从而使它起作用。它是这样做的,正如您从上面的输出也可以看到的一样<a href="https://tio.run/##dVBBDoIwELzzil6MbTRG48WYcPLkKxqBBWtKS9rFxNfjFpCiwT007ezMbHeaF96tOZ4a13W5vnnPLq1HW18Ncps9IEdxThhVASWTUhmFUnIPutyy502n@7EdKqA7SShLmSI93cSkVSZ3UAPBUXxYFG9SOifcAbbOxPbsMx7d@JeZz4ePjk8aMRM5aP6r1nH5lRdrtlqYWwH@mzlxEwSPlEK0E0kSxLV9giQe5QoFL5UGqYgX6DsyHj0rbTMKIqD9u2/HAId1GhcyHiy4mGOBTvO@Z4nfd9e9AQ" rel="nofollow noreferrer" title="Python 3.8 (pre-release) – Try It Online">try yourself online</a></p>