枚举,枚举可以看成“一组常量的集合”,就是向一个类中添加若干个变量。...Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat =6 San =7 day1=Week.Mon ---- 枚举取值
继承Enum的枚举类的特点和优势: 对于其他实现枚举的方式: 一是直接定义: BLACK = 1 RED = 2 二是使用字典:...: 上述实现方式,对应关系均是可变的,可以发生赋值 上述均没有防止重复的功能,不同类型对应值可能相同 枚举的要求: 类型一般不能随意更改 类型一般不能出现重复 对于枚举类型...,因为这表示两个标签对应同一类别,这是允许的,类似别名的概念 此时print(EMP1.RED)会打印出EMP1.BLACK 对于这种类型相同的枚举类型,在遍历时只会遍历EMP1.BLACK...in EMP1: print(x) 输出: EMP1.BLACK EMP1.RED 上述将EMP1类中的全部枚举类型都打印出来 枚举类型的比较: 限定:同一枚举类中的枚举类型...方式: 两个枚举之间的等值比较, 两个枚举之间的身份比较, 不支持大小比较!!!
枚举的定义 首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 用于定义枚举的class和定义类的class是有区别。...每个成员的数据类型就是它所属的枚举。...迭代器 3.1 枚举支持迭代器,可以遍历枚举成员 for color in Color: print(color) 输出结果是,枚举的所有成员。...; 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法; class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。...通过type()函数创建的类和直接写class是完全一样的,因为Python解释器遇到class定义时,仅仅是扫描一下class定义的语法,然后调用type()函数创建出class。
>>> from enum import Enum #导入模块中的类 >>> class Color(Enum): #创建自定义枚举类 red = 1 blue = 2 green...= 3 >>> Color.red #访问枚举类的成员 >>> type(Color.green) #查看枚举类成员的类型 >>> isinstance...(Color.red, Color) True >>> x = dict() >>> x[Color.red] = 'red' #枚举类成员可哈希,可以作为字典的“键” >>> x {: 'red'} >>> Color(2) #返回指定值对应的枚举类成员 >>> Color['red'] >>> r = Color.red...>>> r.name 'red' >>> r.value 1 >>> list(Color) #枚举类是可以迭代的 [, , <Color.green
http://www.cnblogs.com/codingmylife/archive/2013/05/31/3110656.html 从C系语言过来用Python,好不容易适应了写代码不打花括号...,突然有一天发现它居然木有枚举……于是stackoverflow了一把,发现神人的枚举(enum)实现到处都是,于是汉化总结过来。...如果是新版Python用户(Python 3.4 with PEP 435): 1 2 from enum import Enum Animal = Enum('Animal', 'ant bee...dog') or 1 2 3 4 5 class Animals(Enum): ant = 1 bee = 2 cat = 3 dog = 4 旧版Python...用户可以充分发挥动态语言的优越性来构造枚举,有简单的: 1 2 3 4 5 def enum(**enums): return type('Enum', (), enums)
你好,我是 征哥,今天分享一下 Python 中的枚举类型,为什么需要枚举类型,及如何使用。 什么是枚举类型 枚举(Enum)是一种数据类型,是绑定到唯一值的符号表示。...您可以使用它来创建用于变量和属性的常量集。它们类似于全局变量,但是,它们提供了更有用的功能,例如分组和类型安全。Python 在 3.4 版本中添加了标准库 enum。...为什么要使用枚举 使用枚举有以下好处: 代码更容易阅读,更容易维护。 减少由转换或错误输入引起的 bug。 使将来修改代码变得更容易。...如何使用枚举 以我们最熟悉的性别为例,先创建一个枚举类型: >>> from enum import Enum >>> class Gender(Enum): ......,然后再看看使用枚举的版本,这样就知道枚举的好处了。
本篇主要介绍Python中枚举类的用法 当我们需要定义常量时,一个办法就是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ··· NOV = 11 DEC = 12...更好的办法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。...Python提供了Enum来来实现这个功能: from enum import Enum Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May...', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) 这样我们就获得了Month类型的枚举值,可以直接使用Month.Jan来引用一个常量,或者枚举它的所有成员...如果需要更精确地控制枚举类型,可以从Enum派生出自定义类: @unique class Weekday(Enum): Sun = 0 Mon = 1 Tue = 2 Wed
目录: 一.Enum枚举的含义: 二.Enum枚举的声明(举例说明): 三.Enum枚举的特点(举例介绍): 四.Enum枚举的作用: 五.Enum枚举的注意事项(举例说明): 一.Enum枚举的含义:...Enum枚举:枚举是一组命名整型常量,枚举类型是使用 enum 关键字声明的。...二.Enum枚举的声明(举例说明): 枚举的声明方式如下: enum //枚举的名称 { enumeration list//写的内容也就是枚举包含的内容,用逗号隔开 }...枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。...运行结果: 四.Enum枚举的作用: 枚举可以使代码更易于维护,有助于确保给变量指定合法的、期望的值; 枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示; 枚举使代码更易于键入
笔记: 一:枚举类型的定义 二:枚举类和普通类的区别 1:值不可变 2:具有防止相同标签得功能,不同标签的值可以相同!...三:枚举类型、枚举值、枚举名称 1:VIP.YELLOW.Value 获得标签的值 2:VIP.BLACK.name 获取标签名称 3:枚举里面的部分为枚举类型!...四:枚举之间的比较 1: 支持等值比较和is, 不支持大小比较 2: 不同枚举类之间的比较 五:枚举的注意事项 不同标签的值相同的时候,第二种会被当做一种别名,调用时会被覆盖!...__members__.items(): print(v) 六:枚举转换 从数据库中去除某一个数值对应的值(a = 1),根据a的值匹配枚举的类型 a = 1...print(VIP(a)) 七:其他 1:IntEnum类型说明:枚举的都是int类型的!
定义枚举类: from enum import Enum, unique @unique class Weekday(Enum): Sun = 0 # Sun的value被设定为0 Mon...= 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6 可以看到括号里面是Enum ,即继承自枚举类 然后给这个枚举类的每个成员赋予一个值
1 简介 起初 Python 中并未内置枚举(enum)类型,枚举是在 Python3.4 添加的新功能,此时我们可能会有一个疑问:Python3.4 之前的版本还能不能使用枚举呢? ?...什么是枚举? 枚举可看作是一系列符号名称的集合,集合中每一个元素要保证唯一性和不可变,因此我们可以对枚举中元素进行恒等比较,通俗来讲枚举就是一系列常量的集合,枚举是可迭代的。 枚举有什么作用?...我们先来思考一个问题:不使用枚举我们如何定义常量呢? ? 常用的做法是采用变量名大写的方式来定义,这种方式虽然简单,但问题在于我们定义的仍然是变量、是可以被修改的,而常量是什么呢?...简单来说就是不可变的量,枚举就有不可变的特性,所以枚举的主要作用就是用来定义常量的。...2 使用 2.1 创建 枚举语法与 class 语法相同,之前我们在Python 基础(十一):面向对象中已经介绍过 class 了,枚举的定义可以通过继承 Enum 的方式来实现, 看一下示例: from
1d = {"jan": 1, "feb": 2, "mar": 2} 对于这种情况,在 Python3.4 之后,给我们增加了枚举类,枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合...同时使用类获取属性的时候,输出的不是它的数值,而是会显示枚举项。这样更能增加代码的可读性。 对比普通的类,它有以下优势: 不允许在类外直接修改枚举项的值。...枚举可以相同的值,但是值相同的各项 Key 都会当做别名 在枚举类中,可以有相同值,但是后面的枚举项都是第一个的别名 1class Color(Enum): 2 RED = 1 3 GREEN...枚举的基本操作 获取枚举标签的值 1Color.GREEN.value 获取枚举标签的名字 1Color.GREEN.name 对枚举进行遍历 1for v in Color: 2 print(v...那么如果我们怎么将枚举的值转换成枚举名称呢?
python中的枚举类 枚举:在数学和计算机科学理论里,一个集的枚举列出某些有穷序列集的所有成员的程序 例子如下: from enum import Enum class traffictlight...(Enum): #继承枚举类,枚举成员不可重复 RED=1 #枚举成员 RED是枚举的名字,1是枚举的值 YELLOW=2 GREEN=3 #...枚举成员的比较 print(traffictlight.YELLOW.value == 1) 返回True print(type(traffictlight.YELLOW)) print...(traffictlight.YELLOW.name) print(traffictlight.YELLOW.value) print(traffictlight(2)) #通过枚举值获取枚举成员
>>> from enum import Enum #导入模块中的类 >>> class Color(Enum): #创建自定义枚举类 red = 1 blue = 2 green = 3 >...>> Color.red #访问枚举类的成员 >>> type(Color.green) #查看枚举类成员的类型 >>> isinstance...(Color.red, Color) True >>> x = dict() >>> x[Color.red] = 'red' #枚举类成员可哈希,可以作为字典的“键” >>> x {: 'red'} >>> Color(2) #返回指定值对应的枚举类成员 >>> Color['red'] >>> r = Color.red...>>> r.name 'red' >>> r.value 1 >>> list(Color) #枚举类是可以迭代的 [, , <Color.green
作者 :“大数据小禅” 枚举:在数学和计算机科学理论里,一个集的枚举列出某些有穷序列集的所有成员的程序 例子如下: from enum import Enum class traffictlight...(Enum): #继承枚举类,枚举成员不可重复 RED=1 #枚举成员 RED是枚举的名字,1是枚举的值 YELLOW=2 GREEN=3 #...枚举成员的比较 print(traffictlight.YELLOW.value == 1) 返回True print(type(traffictlight.YELLOW)) print...(traffictlight.YELLOW.name) print(traffictlight.YELLOW.value) print(traffictlight(2)) #通过枚举值获取枚举成员
开发中我们经常定义常量, 其实有更好的方法:为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。...Python中提供了Enum类来实现这个功能: from enum import Enum Numbers = Enum('Name', ('乔峰', '鸠摩智', '段誉', '阿紫', '虚竹',....段誉 , 3 阿紫 => Name.阿紫 , 4 虚竹 => Name.虚竹 , 5 慕容复 => Name.慕容复 , 6 6 Name.虚竹 Name.鸠摩智 上面我们就获得了Numbers类型的枚举类...,可以直接使用: Numbers.乔峰 来引用一个常量,或者枚举它的所有成员。...value属性则是自动赋给成员的int常量,默认从1开始计数。 可见,我们既可以用成员名称引用枚举常量,又可以直接根据value的值获得枚举常量。
EnumMeta 元类编程,生成类的类,可以动态生成类。...class EnumMeta(type): def __new__(metacls, cls, bases, classdict): # member_type 枚举成员的类型...# first_enum 第一个继承的类型枚举类 member_type, first_enum = metacls...._get_mixins_方法 @staticmethod def _get_mixins_(bases): """ 返回用于创建枚举成员的类型,以及第一个继承的类型枚举类...""" # 这里是Enum(metaclass=Enum)时用到的,bases=() if not bases: return object, Enum
更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。...Python提供了Enum类来实现这个功能: from enum import Enum Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May...', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) 这样我们就获得了Month类型的枚举类,可以直接使用Month.Jan来引用一个常量,或者枚举它的所有成员...如果需要更精确地控制枚举类型,可以从Enum派生出自定义类 from enum import Enum, unique @unique class Weekday(Enum): Sun = 0...,又可以直接根据value的值获得枚举常量。
初识枚举法 枚举法 【枚举法】 将所有情况列举出来,按照筛选条件逐一进行筛选,最后得到答案的方法。...【步骤】 确定枚举的范围 根据条件进行筛选 【例】 使用枚举法找到1-100之间3的倍数。...如何列举枚举范围 如果枚举的范围是有规律的数字,可以直接使用for i in range()逐一列举。 如果枚举的范围不能直接得到,需要先理清得到枚举范围的思路,再把思路转为代码。...py blue = ['scratch', 'python', 'C++'] for b in blue: print(b) 运行结果 scratch python...hi, python hi, C++ 字符串索引 字符串中的每一个字符都有一个索引值。
python enumerate()函数 用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中,可同时得到数据对象的值及对应的索引值。...中 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。...也就是说会根据提供的函数对指定序列做映射。Python 2.x 返回列表。python3返回的是一个迭代器。...__members__ .items(): print(v) print(Weekdays.Monday) # >>> Weekdays.Monday 枚举的意义重在标签而不在于数值,使用...print(Weekdays.Monday) 打印结果不是1而是Weekdays.Monday,这也符合枚举的意义 #获取名字和值 print(Weekdays.Monday.name) print(
领取专属 10元无门槛券
手把手带您无忧上云