首页 > 代码库 > 枚举型和元类
枚举型和元类
枚举型
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创建的实例
枚举型和元类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。