Python:永不消亡的函数

Python:永不消亡的函数,python,Python,我正在编写一个长期运行的函数,它永远不会像这样消亡: def immortal(): try: # do something except: sleep(5) immortal() 通过这种方式,如果在两次尝试之间出现了问题……但是,在5秒钟的睡眠后,会被捕获,这些功能会再次启动 我担心的是,由于它是一个长时间运行的函数,如果有两个以上的错误,它会不会导致尝试…除了堆栈太深,并导致性能问题 我这样做对吗?如果没有,正确的方法是什么

我正在编写一个长期运行的函数,它永远不会像这样消亡:

def immortal():
    try:
        # do something
    except:
        sleep(5)
        immortal()
通过这种方式,如果在两次尝试之间出现了问题……但是,在5秒钟的睡眠后,会被捕获,这些功能会再次启动

我担心的是,由于它是一个长时间运行的函数,如果有两个以上的错误,它会不会导致尝试…除了堆栈太深,并导致性能问题


我这样做对吗?如果没有,正确的方法是什么?

在使用try时,有一个可选的
。。。除了

def immortal():
    while True:
        try:
            # pass or raise
        except:
            print('error')
        else:
            print('done')
            break

为什么不把try放在一个循环中而不是做递归呢?如果你得到错误,它会一次又一次地跳转到except block和call函数,你需要提供一些登录来纠正错误,这样它就可以在try block上执行语句。不朽不需要中断:)