1)枚举类
顾名思义就是枚举,和C语言中的enum差不多。有两种生成方式:
(1)快速生成
无需设定值,默认值从1开始。示例代码如下:
# -*- coding: utf-8 -*-#!/usr/bin/env python3from enum import EnumWeek=Enum('Week',('Monday','Tuesday','Wedsday','Tursday'))for name,member in Week.__members__.items(): print(name,member,member.value)
输出结果如下:
Monday Week.Monday 1Tuesday Week.Tuesday 2Wedsday Week.Wedsday 3Tursday Week.Tursday 4
可以看出是从“1”开始的。
(2)精确生成
生成指定的值。示例代码如下:
# -*- coding: utf-8 -*-#!/usr/bin/env python3from enum import Enum,unique@uniqueclass 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.FridayWeek.Wedsday3Monday => Week.Monday 0Tuesday => Week.Tuesday 1Wedsday => Week.Wedsday 2Thursday => Week.Thursday 3Friday => Week.Friday 42)动态创建类(元类)
这里先补一个小问题:
def func(name): print('Hello,%s.'%name)func('Jack')
就是什么时候打印输出需要%号,当name为形参时。
领取专属 10元无门槛券
私享最新 技术干货