枚举类Enum
枚举类Enum
枚举类有哪些好处
枚举类可以方便地表示星期,月份等常数类型,如果你不用枚举类,那么你只能用数字或者字符串。如果你使用数字,用1-7来表示星期数,但一个数字在程序中不仅可以表示星期数,可能还有其他许多含义,这样你在写程序时就必须时刻记住这些数字的含义,这降低了程序的可读性,也导致容易出错。而当你使用字符串时,虽然没有明显的缺点,但在内存中字符串所占内存要比数字多,这就降低了程序的效率。
枚举类正好弥补了这两方面的缺点,你可以在代码中使用枚举类,但在内存中存放时使用的是数字,既提高了可读性,又提高了程序效率。更重要的是,Python中的枚举类型是不可变类型,又可以进行迭代,这就意味着你可以随时使用枚举类型而不用担心改变了枚举类型的值。
两种枚举类定义方式
程序有两种方式来定义枚举类:
直接使用 Enum 列出多个枚举值来创建枚举类。
通过继承 Enum 基类来派生枚举类。
案例
简单枚举类定义
# 由于枚举类的“new”方法,将会保证内存中只会存在一个枚举类的实例
# -*- coding: utf-8 -*
from enum import Enum
# 这样我们就获得了Month类型的枚举类
# value属性则是自动赋给成员的int常量,默认从1开始计数。
seasonEnum = Enum('SeasonEnum', ('SPRING', 'SUMMER', 'FALL', 'WINTER'))
print(f'seasonEnum: {seasonEnum}')高级枚举类定义
代码
输出
枚举类比较
代码
输出
遍历枚举类
代码
输出
最后更新于
这有帮助吗?
