python的代码优化(使用枚举)

it2022-05-05  184

当我们书写代码进行条件判断时,常会书写出以下类似的代码:

def foo(num): if num ==11: do_something() if num ==22: do_otherthing()

但是有没有想过,当我们把代码提交给别人时,如何做到让其他人能够快速准确的知道11,22这些数值面值代表的意思呢?

1.最直接的方式在数值面值处添加注释,但这显然不是提升代码可读性的最佳方式

2.采用枚举(enum)--enum 是 Python 自 3.4 版本引入的内置模块,如果你使用的是更早的版本,可以通过 pip install enum34 来安装它。下面是使用枚举的样式代码:

from enum improt IntEnum class CommentsTOFeatured(IntEnum): FROM_WEBSITE = 11 FROM_CLIENT = 22 def foo(num): if num==CommentsToFeatured.FROM_WEBSITE: do_something() if num==CommentsToFeatured.FROM_CLIENT: do_otherthing()

试想一下,如果你在某个分支判断时将 11 错打成了 111 会怎么样?我们时常会犯这种错,而这类错误在早期特别难被发现。将这些数字字面量全部放入枚举类型中可以比较好的规避这类问题。类似的,将字符串字面量改写成枚举也可以获得同样的好处。

使用枚举类型代替字面量的好处:

提升代码可读性:所有人都不需要记忆某个神奇的数字代表什么提升代码正确性:减少打错数字或字母产生 bug 的可能性

最新回复(0)