python枚举类型
笔记:
一:枚举类型的定义
二:枚举类和普通类的区别
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:
# ----------------------------------------------#
# 定义一个枚举类型
# ----------------------------------------------# from enum import Enum
from enum import IntEnum, unique class VIP(Enum):
YELLOW = 1
GREEN = 2
BLACK = 3
RED = 4 class Common:
YELLOW = 2 # 注意这里显示的是VIP.Black而不是3,枚举的意义重在标签而不是标签的值
print(VIP.BLACK) # ----------------------------------------------------#
# 枚举类和普通类的区别
# 字典和普通类封装数据: 1:可变 2:没有防止相同标签得功能
# ----------------------------------------------------# # VIP.GREEN = 6 # 当改变值得时候报错 Common.YELLOW = 9 # 改变类变量的值
print(Common.YELLOW)
x = Common() # 类的实例化
print(x.YELLOW) # ----------------------------------------------#
# 枚举类型、枚举值、枚举名称
# ----------------------------------------------#
print("Black = ", VIP.BLACK.value) # get value of Enum print("name = ", VIP.BLACK.name) # get value of Name,the type of name is str print(VIP.BLACK) # 名字为枚举类型 print(VIP['BLACK']) # 枚举可以被遍历
for v in VIP:
print(v) # ----------------------------------------------#
# 枚举之间的比较,支持等值比较,不支持大小比较
# ----------------------------------------------# result1 = VIP.GREEN == VIP.BLACK
result2 = VIP.GREEN.value == 2 # 注意这里的结果
print(result1, result2) class VIP1(Enum):
YELLOW = 1
GREEN = 2
BLACK = 3
RED = 4
WRITE = 5 result3 = VIP.GREEN == VIP1.GREEN
print(result3) # ----------------------------------------------#
# 枚举注意事项
# ----------------------------------------------# class VIP2(Enum):
YELLOW = 1
GREEN = 1 # 别名
BLACK = 3
RED = 4 for v in VIP2:
print(v) for v in VIP2.__members__.items():
print(v) for v in VIP2.__members__:
print(v) # ----------------------------------------------#
# 枚举转换
# ----------------------------------------------# a = 1
print(VIP(a)) # 可以看做是类型转换 # ----------------------------------------------#
# 枚举补充
# ----------------------------------------------# # 1:IntEnum类型说明 class VIP3(Enum):
YELLOW = 1
GREEN = "str" # 别名
BLACK = 3
RED = 4 class VIP4(IntEnum):
YELLOW = 1
# GREEN = 'str' # 字符串报错
BLACK = 3
RED = 4 # 2:限制枚举类型的值不能一样
@unique
class VIP6(Enum):
YELLOW = 1
GREEN = 1 # 当值相同的时候会报错!
BLACK = 3
RED = 4
python枚举类型的更多相关文章
- 人生苦短之Python枚举类型enum
枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python ...
- python 枚举类型
在python中枚举是一种类(Enum,IntEnum),存放在enum模块中.枚举类型可以给一组标签赋予一组特定的值. 枚举的特点: 枚举类中不能存在相同的标签名 枚举是可迭代的 不同的枚举标签可以 ...
- python枚举类型 Enum
在python中枚举是一种类(Enum) 枚举类中不能存在相同的标签名 枚举是可迭代的 例: from enum import Enum class Vip(Enum): MONDAY = 0 TUE ...
- Python 中的枚举类型~转
Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...
- Python中模拟enum枚举类型的5种方法分享
这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下 以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...
- 别再说Python没有枚举类型了,好好看看
枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. Python 的原生类型(Built-in types)里并没有专门的枚举类型,但是我们可以通 ...
- Python 的枚举类型
起步 Python 中的枚举类型 Python 的原生类型中并不包含枚举类型.为了提供更好的解决方案,Python 通过 PEP 435 在 3.4 版本中添加了 enum 标准库. 枚举类型可以看作 ...
- Python面向对象-枚举类型enum
枚举类型:在实际问题中,有些变量的值被限定在一个有限的范围内.例如:一个星期有且只有7天,一年有且只有十二个月,一个班每周有6门课程等等.如果把这些量说明为整型.字符串或者其他类型显然是不合适.编程界 ...
- PyQt(Python+Qt)学习随笔:Model中项的标记flags取值及枚举类型Qt.ItemFlag
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在Model中的项可以通过flags()方法查询对应项是否能被选择.拖拽或其他操作,对应的返回值类型 ...
随机推荐
- 某喷码机品牌U盘存储的配置文件简记
U盘下的 KadexMicro 文件夹是喷码机生成的. 其配置文件存储在如上图位置,后缀 .mjt 实为 xml 文件. 内容如: <?xml version="1.0" e ...
- java程序员技术范围
1 工具 开发工具.源代码管理.构建工具.测试工具(压力.安全等).接口测试工具.反编译工具.日志工具.第三方工具等 2 java jvm.多线程.socket.io(两种方式).集合(两大接口).异 ...
- 【Flask】Flask学习笔记(一) 应用基本结构
初始化 使用前必须创建一个应用实例 from flask import Flask app = Flask(__name__) 路由和视图函数 请求流程 客户端(web浏览器)--> web服 ...
- java - day006 - 构造方法
构造方法 新建对象是,执行的一个特殊方法 new 类名(); 这个小括号就是构造方法 Java 类中,必须有构造方法,如果自己不定义, 编译器会自动生成默认构造方法 new 关键字是新建对象用的, ...
- MySQL ERROR 1820 (HY000)
You must reset your password using ALTER USER statement before executing this statement报错处理 解决方式如下: ...
- Loadrunner测试数据库性能,测试SQL语句的脚本例子
Loadrunner与SQL Server的操作可以通过录制的方式来实现,但本文还是通过直接调用loadrunner本身的function来实现sql语句的操作, 主要用到的是lr_db_connec ...
- docker-elk装IK自定义分词库
本人的elasticsearch是docker环境下运行 运行elasticsearch的容器,通过docker命令:docker exec -it 955e8d32d4a9 /bin/bash 进入 ...
- js特殊符号(转)
HTML有许多特殊的字符,您对此有多少了解?平时在WEB制作中,您又有用到多少?或者说你在平时使用之时,是否也会碰到,有许多特殊字符要如何打印出来?比如说“笑脸”,比如说“版权号”.要是你用时忘记了这 ...
- JIRA API 对接
系统要跟JIRA对接,将本系统数据发送给jira. 开始一头雾水怎么让数据传过去已什么形式存在,是存数据库呢还是怎么显示呢.研究半天发现其实只要将原数据作为json数据提供给jira接口,jira接口 ...
- 使用token做认证
对当前用户,使用base64加密token,再解密token,但是不如JWT加密安全 import time import base64 import hmac def generate_token( ...