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上执行语句。不朽不需要中断:)