1. try-except-else-finally
for i in range(5):
try:
continue
except:
continue
else:
print('else'+str(i))
finally:
print('finally'+str(i))
finally0
finally1
finally2
finally3
finally4
结论:else块中的有可能被打断,finally块中的一定执行。
def test():
try:
return 1
except:
return 2
else:
return 3
# finally:
# return 4
print(test())
1
try块返回1了,else的就不执行了。
def test():
try:
return 1
except:
return 2
else:
return 3
finally:
return 4
print(test())
4
尽管try块要返回,但由于finally一定要执行,返回值被覆盖了。