我是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
我还尝试设置了递归限制,但仍然无法正常工作。我只是堆栈溢出。
答案 0 :(得分:0)
您继续使用现在停止条件在eg_number中调用eg_number。
在调用之前将if second == 0
移动到eg_number
def eg_number():
root.after(1000, sec)
if second == 0:
return
eg_number()
答案 1 :(得分:0)
第一个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)