RecursionError:超过最大递归深度-Tkinter Timer Project

时间:2020-08-09 16:36:57

标签: python python-3.x function 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

我还尝试设置了递归限制,但仍然无法正常工作。我只是堆栈溢出。

2 个答案:

答案 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)