我正在用 Python 创建一个应用程序,该应用程序应该在后台运行,不断检查系统剪贴板。为了实现这一目标,我有一种方法可以进行检查,然后在指定的延迟(无限递归)后调用自身。但是,我想知道实现无限循环而不是递归是否会更优化。
我的第一直觉是循环可能更好,因为它不保留任何指向先前函数调用的指针 - 但我不太确定。
简而言之,这样是否更优化:
def recursive(interval):
performChecks()
updateGUI()
wait(interval)
recursive(interval)
还是这个
def main():
running = True
while running:
performChecks()
updateGUI()
wait(interval)
最佳答案
在 Python 中,您应该更喜欢第二个版本。这是因为调用堆栈默认限制为:
>>> import sys
>>> sys.getrecursionlimit()
1000
所以你的第一个方法将在 1000 次迭代后崩溃。
关于python - 无限递归和无限循环哪个更优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48177815/