我是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()