我在Python中创建一个应该在后台运行的应用程序,在系统剪贴板上进行持续检查。为了实现这一点,我有一个方法进行检查,然后在指定的延迟(无限递归)后调用自身。但是,我想知道实现无限循环而不是递归是否更优化。
我的第一直觉是循环可能更好,因为它不会保留任何指向前一个函数调用的指针 - 但我并不确定。
简而言之,这是更优化的:
def recursive(interval):
performChecks()
updateGUI()
wait(interval)
recursive(interval)
或者是这个
def main():
running = True
while running:
performChecks()
updateGUI()
wait(interval)
答案 0 :(得分:2)
在Python中,您应该更喜欢第二个版本。这是因为调用堆栈默认限制为:
>>> import sys
>>> sys.getrecursionlimit()
1000
因此,您的第一种方法将在1000次迭代后崩溃。