递归错误:超过了最大递归深度-tkinter计时器项目



我是Python的初学者,对此并不熟悉。我正在做一个计时器项目,我会循环直到我的秒数达到0,但我总是会收到这个错误。

这是功能(使用tkinter(:

def sec():
second -= 1
def eg_number():
root.after(1000, sec)
eg_number()
if second == 0:
return  #even with this, I still get the error

我也尝试过设置递归限制,但它仍然不起作用。我刚得到一个堆栈溢出。

第一个second应在sec()函数内声明为全局。此外,您应该将eg_number传递给after()

second = 20
def sec():
global second
second -= 1
print(second)
def eg_number():
sec()
if second == 0:
return
root.after(1000, eg_number)

您一直在eg_number内部调用eg_number,现在是停止条件。将调用之前的if second == 0移动到eg_number

def eg_number():
root.after(1000, sec)
if second == 0:
return
eg_number()

最新更新