python - 无限递归和无限循环哪个更优化?

标签 python loops recursion optimization

我正在用 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/

相关文章:

python - 显示网格的井字游戏

python - PyCharm 项目 View 中文件图标旁边 X 的含义

javascript - Node.JS 停止工作并且控制台充满了点

c++ - 递归算法将所有组合分为两组

java - 如何使用递归计算树中的最高级别?

python - 在数据框中使用 z 变换

python - Pandas DataFrame 到控制台格式的 CSV

javascript - jQuery Loop by id 为每个元素

Java:如何保持循环来修复异常?

c - 如何使用递归查找数字中的最小元素 [C]