例如,在以下代码中,将不执行行print("Finished computation")
:
def test():
print("Starting computation...")
if True:
return 0
print("Finished computation")
保证代码执行的一种方法是使用try
/ finally
:
def test():
try:
print("Starting computation...")
if True:
return 0
finally:
print("Finished computation")
感觉有点奇怪,因为使用了try
而不使用catch
。这被认为是最保证执行力的Python方法吗?
答案 0 :(得分:0)
这是使用finally
的替代解决方案-一种关闭函数,它在程序关闭时依靠atexit
模块(退出处理程序)执行。关闭功能仅在代码正常终止时执行-如果发送终止信号则不执行。也许其他人可以评论这是否真的是pythonic解决方案。
def shutdown():
print("Finished computation")
def test():
print("Starting computation...")
if True:
return 0
import atexit
atexit.register(shutdown)
test()
答案 1 :(得分:-1)
仅添加except
这样的事情对我来说很好。
def test():
try:
print("Starting computation...")
0/0
if True:
return 0
except:
print("error")
finally:
print("Finished computation")
答案 2 :(得分:-2)
您可以为变量设置返回值,然后在函数结尾无限期地返回变量。
def test():
#return variable
ret = None
print("Starting computation...")
if True:
#set return variable
ret = 0
print("Finished computation")
return ret