首页 > 其他 > 详细

枚举型和元类

时间:2017-05-25 20:18:26      阅读:308      评论:0      收藏:0      [点我收藏+]

枚举型

from enum import Enum
Month=Enum(Month,(Jan,Feb,Mar,Apr,May,jun,Jul))
for name,member in Month.__members__.items():
    print(name,-,member,,,member.value)

Jan - Month.Jan , 1
Feb - Month.Feb , 2
Mar - Month.Mar , 3
Apr - Month.Apr , 4
May - Month.May , 5
jun - Month.jun , 6
Jul - Month.Jul , 7

可以从枚举类派生自定义类:

from enum import Enum, unique
# unique 检测有么有重复值
@unique
class Weekday(Enum):
    sun=0
    mon=1
    tue=2
    wed=3
    thu=4
    fri=5
    sat=6

 

 

元类:

python是动态语言,函数和类的定义不是编译时定义的,而是运行时动态创建的,动态创建class 使用type()函数。

type() 既可以返回一个对象的类型,又可以创建新的类型, 例如:

#定义方法
def getname(self, name=haha):
    print(%s.% name)

# ‘Name’ class 名称, 第二个参数继承类,第三个参数方法名称和函数的绑定
Name=type(Name,(object,),dict(getName=getname))

 

除了type 动态创建类之外, 要控制类的创建行为,还可以使用metaclass:

先创建metaclass, 就可以创建类,最后创建实例

metaclass 允许创建类和修改类,类可以看出metaclass创建的实例

枚举型和元类

原文:http://www.cnblogs.com/fanhaha/p/6905530.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!