经典代码(同样适用于Java、JavaScript):
def lol(): try: return True finally: return False
调用lol()后,究竟是返回False还是True呢?相信你和我一样,最开始认为是True,因为try中的语句先执行,对吧?
lol()
False
True
try
但事实上:
>>> lol() False
try had a try. Finally, finally won.
finally
所以,不要在异常语句中用return……