使用枚举类和元类

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()

创建类的三种方式:

  1. 正常情况下,我们都用class Xxx...来定义类

  2. 但是,type()函数也允许我们动态创建出类来

>>> Hello = type('Hello', (object,), dict(hello=fn)) # 创建Hello class

要创建一个class对象,type()函数依次传入3个参数:

  • class的名称;
  • 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;
  • class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。
  1. 先定义metaclass,就可以创建类,最后创建实例。正常情况下,你不会碰到需要使用metaclass的情况。先留着不看了。。

你可能感兴趣的:(使用枚举类和元类)