python枚举类型
2018-10-10 08:39:40来源:博客园 阅读 ()
笔记:
一:枚举类型的定义
二:枚举类和普通类的区别
1:值不可变
2:具有防止相同标签得功能,不同标签的值可以相同!
三:枚举类型、枚举值、枚举名称
1:VIP.YELLOW.Value 获得标签的值
2:VIP.BLACK.name 获取标签名称
3:枚举里面的部分为枚举类型!
四:枚举之间的比较
1: 支持等值比较和is, 不支持大小比较
2: 不同枚举类之间的比较
五:枚举的注意事项
不同标签的值相同的时候,第二种会被当做一种别名,调用时会被覆盖!
遍历的时候不会被打印出来,解决方法是:
for v in VIP.__members__.items():
print(v)
六:枚举转换
从数据库中去除某一个数值对应的值(a = 1),根据a的值匹配枚举的类型
a = 1
print(VIP(a))
七:其他
1:IntEnum类型说明:枚举的都是int类型的!
2:限制枚举类型的值不能一样
-------23种设计模式-------实践中学习--------
-------尝试写一些包和类库------------------
CODE:
1 # ----------------------------------------------# 2 # 定义一个枚举类型 3 # ----------------------------------------------# 4 5 from enum import Enum 6 from enum import IntEnum, unique 7 8 9 class VIP(Enum): 10 YELLOW = 1 11 GREEN = 2 12 BLACK = 3 13 RED = 4 14 15 16 class Common: 17 YELLOW = 2 18 19 20 # 注意这里显示的是VIP.Black而不是3,枚举的意义重在标签而不是标签的值 21 print(VIP.BLACK) 22 23 24 # ----------------------------------------------------# 25 # 枚举类和普通类的区别 26 # 字典和普通类封装数据: 1:可变 2:没有防止相同标签得功能 27 # ----------------------------------------------------# 28 29 # VIP.GREEN = 6 # 当改变值得时候报错 30 31 Common.YELLOW = 9 # 改变类变量的值 32 print(Common.YELLOW) 33 x = Common() # 类的实例化 34 print(x.YELLOW) 35 36 # ----------------------------------------------# 37 # 枚举类型、枚举值、枚举名称 38 # ----------------------------------------------# 39 print("Black = ", VIP.BLACK.value) # get value of Enum 40 41 print("name = ", VIP.BLACK.name) # get value of Name,the type of name is str 42 43 print(VIP.BLACK) # 名字为枚举类型 44 45 print(VIP['BLACK']) 46 47 # 枚举可以被遍历 48 for v in VIP: 49 print(v) 50 51 52 # ----------------------------------------------# 53 # 枚举之间的比较,支持等值比较,不支持大小比较 54 # ----------------------------------------------# 55 56 result1 = VIP.GREEN == VIP.BLACK 57 result2 = VIP.GREEN.value == 2 # 注意这里的结果 58 print(result1, result2) 59 60 61 class VIP1(Enum): 62 YELLOW = 1 63 GREEN = 2 64 BLACK = 3 65 RED = 4 66 WRITE = 5 67 68 69 result3 = VIP.GREEN == VIP1.GREEN 70 print(result3) 71 72 # ----------------------------------------------# 73 # 枚举注意事项 74 # ----------------------------------------------# 75 76 77 class VIP2(Enum): 78 YELLOW = 1 79 GREEN = 1 # 别名 80 BLACK = 3 81 RED = 4 82 83 84 for v in VIP2: 85 print(v) 86 87 for v in VIP2.__members__.items(): 88 print(v) 89 90 for v in VIP2.__members__: 91 print(v) 92 93 # ----------------------------------------------# 94 # 枚举转换 95 # ----------------------------------------------# 96 97 a = 1 98 print(VIP(a)) # 可以看做是类型转换 99 100 # ----------------------------------------------# 101 # 枚举补充 102 # ----------------------------------------------# 103 104 # 1:IntEnum类型说明 105 106 107 class VIP3(Enum): 108 YELLOW = 1 109 GREEN = "str" # 别名 110 BLACK = 3 111 RED = 4 112 113 114 class VIP4(IntEnum): 115 YELLOW = 1 116 # GREEN = 'str' # 字符串报错 117 BLACK = 3 118 RED = 4 119 120 121 # 2:限制枚举类型的值不能一样 122 @unique 123 class VIP6(Enum): 124 YELLOW = 1 125 GREEN = 1 # 当值相同的时候会报错! 126 BLACK = 3 127 RED = 4
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:浅析Python中的main函数
下一篇:常用模块-02
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash