1)枚举类
顾名思义就是枚举,和C语言中的enum差不多。有两种生成方式:
(1)快速生成
无需设定值,默认值从1开始。示例代码如下:
# -*- coding: utf-8 -*-
#!/usr/bin/env python3
from enum import Enum
Week=Enum('Week',('Monday','Tuesday','Wedsday','Tursday'))
for name,member in Week.__members__.items():
print(name,member,member.value)输出结果如下:
Monday Week.Monday 1
Tuesday Week.Tuesday 2
Wedsday Week.Wedsday 3
Tursday Week.Tursday 4可以看出是从“1”开始的。
(2)精确生成
生成指定的值。示例代码如下:
# -*- coding: utf-8 -*-
#!/usr/bin/env python3
from enum import Enum,unique
@unique
class Week(Enum):
Monday=0
Tuesday = 1
Wedsday=2
Thursday=3
Friday=4
这里注意一点,修饰器@unique是为了防止重复变量。
(3)访问方式
如下:
print(Week.Friday)
print(Week['Wedsday'])
print(Week.Thursday.value)
for name,member in Week.__members__.items():
print(name,'=>',member,member.value)输出结果:
Week.Friday
Week.Wedsday
3
Monday => Week.Monday 0
Tuesday => Week.Tuesday 1
Wedsday => Week.Wedsday 2
Thursday => Week.Thursday 3
Friday => Week.Friday 42)动态创建类(元类)
这里先补一个小问题:
def func(name):
print('Hello,%s.'%name)
func('Jack')就是什么时候打印输出,需要%号——当name为形参时。

本文介绍了Python中枚举类的定义及其两种生成方式,并通过示例代码展示了枚举类的使用方法。此外,还简要提及了元类的概念及其实现动态创建类的方法。
2508

被折叠的 条评论
为什么被折叠?



