使用else分支与直接返回值,哪种写法更快?PEP有无相关规范?
关于两种Python写法的性能与PEP规范问题
性能对比
这两种写法的执行速度完全没有区别。Python解释器在编译阶段会自动优化掉冗余的else分支,两种代码最终生成的字节码完全一致——你可以用dis模块反编译验证:
import dis def is_even1(num: int): if num%2==0: return True else: return False def is_even2(num: int): if num%2==0: return True return False dis.dis(is_even1) dis.dis(is_even2)
运行后会看到两个函数的字节码指令完全相同,所以执行效率不存在差异。
PEP规范相关
PEP 8(Python编码风格指南)没有强制规定必须使用其中某一种写法,但它倡导代码简洁性。第二种写法去掉了多余的else,更符合“避免不必要的代码嵌套”的原则,能让代码更紧凑易读。
另外补充一个更简洁的写法,完全可以省略条件判断,直接返回表达式结果:
def is_even(num: int): return num % 2 == 0
这种写法也完全符合PEP 8的简洁性要求,是更推荐的写法。
内容的提问来源于stack exchange,提问作者Jason Grace
相关产品推荐
相关产品推荐

