【发布时间】:2020-08-09 16:36:57
【问题描述】:
我是 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
我也尝试设置我的递归限制,但它仍然无法正常工作。我只是得到一个堆栈溢出。
【问题讨论】:
-
这是一次又一次调用 eg_number() 的无限循环
-
如果
sec实际上是您提供的代码,那么它不会运行,因为它会立即出错。 -
即使您设法将其更改为在
second达到零时退出,在时间限制到期之前调用无限递归仍然是不明智的。它没有任何作用,总是会导致堆栈溢出。您尝试做的事情没有意义。 -
你有什么解决办法吗?请考虑以下来自用户 Or Y 的评论。感谢您的回答。
-
解决方案是在时间限制到期之前不要尝试执行无限递归。由于您没有说明您希望实现的原因,因此很难提出替代方案。
标签: python python-3.x function tkinter