枚举对象可以进行比较 , 但是不能进行值比较,如果需要进行值比较则需要枚举对象继承IntEnum对象,举个例子:
上 面的测试例子当中,我们创建了两个继承类型不一样的枚举类,可以看到继承了IntEnum的Season可以进行值的比较 , 而继承了Enum的Part则不能进行值比较,并且IntEnum类型与Enum类型也不能进行比较 , 即使属性和值一样 。
枚举中可以定义枚举类自身特有的方法,也可以复写一些已经在基类中定义好的方法 , 比如:__init__,__str__,__repr__,__hash__,__format__等 。举个例子:
上面我们定义了一个枚举类,其中value是一个枚举类型,我们可以定义__init__方法去对应元组中的值 , 我们也复写了__str__方法 。
打印方法看看效果:
从输出结果看,我们自定义和复写的方法都已经成功的应用到了Mood类中 。
不同于java中的枚举类,python中的枚举类是可以被继承的,但是被继承的枚举类规定其不能定义任何成员,但可以定义抽象方法 。举例如下:
测试用例可以完美运行,我们可以发现:第一个方法中,抛出了TypeError的异常;第二个测试方法中,MoreColor继承了Color , Color继承了Shade, 并且我们可以通过子类调用父类中的方法 。
【python枚举函数取值 python枚举有什么用】主要介绍了enum模块的基础知识,包含枚举的创建、枚举成员和属性的访问、枚举方法的创建、枚举的继承等 。其中新版中的_ignore_、_order_、_missing_等可以学习的例子,另外enum的子类IntEnum、IntFlag等也是我们比较常用的枚举基类,本文中简单的介绍了IntEnum, 而IntFlag相比与IntEnum多了, |, ^, ~的操作,其他的子类大家感兴趣也可以了解 。
如何按行枚举 python enumerateenumerate()说明
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串) , enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数
例如对于一个seq,得到:
(0, seq[0]), (1, seq[1]), (2, seq[2])
1
1
enumerate()返回的是一个enumerate对象,例如:
enumerate()使用
如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
print i ,list1[i]123123
上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
print index, item
0 这
1 是
2 一个
3 测试1234567812345678
enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
print index, item
1 这
2 是
3 一个
4 测试1234567812345678
补充
如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())11
这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作 。
可以利用enumerate():
count = -1
for index, line in enumerate(open(filepath,'r')):
count += 1
关于python枚举函数取值和python枚举有什么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 逃生单机游戏下载,单机版逃生游戏
- 淘宝客如何设置推广位,淘宝客推广位名称是什么
- postgresql的for循环,pg数据库for循环
- 手机接的彩铃怎么取消,手机接听彩铃怎么取消
- c语言函数内部全局变量 c语言全局变量用法
- mongodb远程拷贝数据集合的简单介绍
- 安卓gba模拟器程序包,安卓安装gba模拟器
- 如何写游戏新媒体文章论文,如何写游戏新媒体文章论文
- pythonif主函数 python主函数写法