Tkin中无法解释的无限循环

2024-04-20 02:13:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为python2学习Tkinter,在那里我遇到了这个代码。这个在tkinter中创建一个窗口,并在代码运行良好的情况下每1秒增加一次label的值..您能告诉我为什么没有观察到无限循环,因为每过一千秒控件就会返回count(),而控件不应该到达最后一个代码行?在

import Tkinter as tk

counter = 0 
def counter_label(label):
  def count():
    global counter
    counter += 1
    label.config(text=str(counter))
    label.after(1000, count)
  count()


root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="green")
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy)
button.pack()
root.mainloop()

另外,传递给函数def counter_label的label变量只是原始变量的副本,因此更改它不应影响原始变量变量。怎么发生了吗?在

感谢任何帮助。在


Tags: 代码texttkinterdefcountcounterbuttonroot