结论
● 若超过95%的可能不会进入except异常处理中,则使用代码一的样式(EAFP风格)
● 否则可以换成用代码二的样式(LBYL风格)
代码一(EAFP风格):
try: 判断代码 except 错误: 普通代码
代码二(LBYL风格):
if 判断代码: 普通代码 else: 普通代码
分析
众所周知,在Python中,自带的 try except 这种异常处理语句比较"重",也就是性能不太好
但是,官方却推荐使用 EAFP (Easier to Ask for Forgiveness than Permission) 代码编写风格,也就是官方推荐使用 try except
那为啥不使用 LBYL (Look Before You Leap) 编写风格呢,也就是为啥不直接用 if else 这种简单明了性能还OK的方式呢
事实上,try 的性能并不差,不仅不差,还非常好,完全优于 if else
但是 except 捕获异常却非常消耗性能!
所以,
● 如果绝大多数情况下,不会进入异常处理分支的话,使用 try except 更好 EAFP
● 如果部分情况下,会进入异常处理分支,那么换不换无所谓,都是一个量级的时间消耗,谁也别瞧不起谁
● 如果大部分情况下,会进入异常处理分支,那么建议直接换成 if else LBYL
标签:try,Python,LBYL,代码,except,else,EAFP From: https://www.cnblogs.com/Alan-LJP/p/16982996.html