• 三、自定义类型的枚举

    三、自定义类型的枚举

    但有些时候我们需要控制枚举的类型,那么我们可以 Enum 派生出自定义类来满足这种需要。通过修改上面的例子:

    1. #!/usr/bin/env python3
    2. # -*- coding: UTF-8 -*-
    3. from enum import Enum, unique
    4. Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
    5. # @unique 装饰器可以帮助我们检查保证没有重复值
    6. @unique
    7. class Month(Enum):
    8. Jan = 'January'
    9. Feb = 'February'
    10. Mar = 'March'
    11. Apr = 'April'
    12. May = 'May'
    13. Jun = 'June'
    14. Jul = 'July'
    15. Aug = 'August'
    16. Sep = 'September '
    17. Oct = 'October'
    18. Nov = 'November'
    19. Dec = 'December'
    20. if __name__ == '__main__':
    21. print(Month.Jan, '----------',
    22. Month.Jan.name, '----------', Month.Jan.value)
    23. for name, member in Month.__members__.items():
    24. print(name, '----------', member, '----------', member.value)

    输出的结果如下:

    Python3 自定义类型的枚举类

    通过上面的例子,可以知道枚举模块定义了具有迭代 (interator) 和比较(comparison) 功能的枚举类型。 它可以用来为值创建明确定义的符号,而不是使用具体的整数或字符串。