Python:永不消亡的函数
Python: function that never dies
我正在编写一个永远不会像这样死掉的长时间运行的函数:
def immortal():
try:
# do something
except:
sleep(5)
immortal()
这样,如果在try...except之间有错误,就会被捕获,休眠5秒后,函数再次启动。
我担心的是,既然是一个long running function,如果有两个很多error,会不会导致try...except栈太深,导致性能问题?
我这样做对吗?如果不是,正确的方法是什么?
使用 try...except.
时有一个可选的 else
def immortal():
while True:
try:
# pass or raise
except:
print('error')
else:
print('done')
break
我正在编写一个永远不会像这样死掉的长时间运行的函数:
def immortal():
try:
# do something
except:
sleep(5)
immortal()
这样,如果在try...except之间有错误,就会被捕获,休眠5秒后,函数再次启动。
我担心的是,既然是一个long running function,如果有两个很多error,会不会导致try...except栈太深,导致性能问题?
我这样做对吗?如果不是,正确的方法是什么?
使用 try...except.
时有一个可选的else
def immortal():
while True:
try:
# pass or raise
except:
print('error')
else:
print('done')
break