使用枚举类和元类
2017-05-14 本文已影响2人
某米狼
from enum import Enum
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
获得了Month类型的枚举类,可以直接使用Month.Jan来引用一个常量
#???这个不知道什么意思
>>>Month.__members__.items()
创建类的三种方式:
-
正常情况下,我们都用class Xxx...来定义类
-
但是,type()函数也允许我们动态创建出类来
>>> Hello = type('Hello', (object,), dict(hello=fn)) # 创建Hello class
要创建一个class对象,type()函数依次传入3个参数:
- class的名称;
- 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;
- class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。
- 先定义metaclass,就可以创建类,最后创建实例。正常情况下,你不会碰到需要使用metaclass的情况。先留着不看了。。