<p>所以我自己找到了这个问题的答案。你知道吗</p>
<p><strong>不起作用的代码示例</strong></p>
<pre><code>root = Tk()
def foo():
print(repeat)
root.after(5000, foo())
foo()
root.mainloop()
</code></pre>
<p>对我有用的代码</p>
<pre><code>root = Tk()
def foo():
print(repeat)
root.after(5000, foo)
foo()
root.mainloop()
</code></pre>
<p>在仔细查看了我在底部引用的关于effbot的<a href="https://stackoverflow.com/questions/29619826/python-tkinter-call-event-after-every-30-seconds-or-certain-time-interval?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa">this SO answer</a>、<a href="https://www.raspberrypi.org/forums/viewtopic.php?t=137597" rel="nofollow noreferrer">this rasperri pi forum answer</a>和tkinter文档之后。我意识到函数名被引用了,但是函数本身并没有在<code>after()</code>方法中被调用</p>
<blockquote>
<p>Registers an alarm callback that is called after a given time.</p>
<p>This method registers a callback function that will be called after a
given number of milliseconds. Tkinter only guarantees that the
callback will not be called earlier than that; if the system is busy,
the actual delay may be much longer.</p>
<p>The callback is only called once for each call to this method. To keep
calling the callback, you need to reregister the callback inside
itself:</p>
<p>class App:
def <strong>init</strong>(self, master):
self.master = master
self.poll() # start polling</p>
<pre><code>def poll(self):
... do something ...
self.master.after(100, self.poll)
</code></pre>
</blockquote>