博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中使用枚举类
阅读量:5162 次
发布时间:2019-06-13

本文共 978 字,大约阅读时间需要 3 分钟。

开发中我们经常定义常量,

其实有更好的方法:为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。

Python中提供了Enum类来实现这个功能:

from enum import EnumNumbers = Enum('Name', ('乔峰', '鸠摩智', '段誉', '阿紫', '虚竹','慕容复'))for name, member in Numbers.__members__.items():    print(name, '=>', member, ',', member.value)print(Numbers.慕容复.value) # 值默认从1 开始print(Numbers['虚竹']) # 用数组下标的形式访问属性print(Numbers(2))  # 直接使用索引形式访问

输出:

乔峰 => Name.乔峰 , 1鸠摩智 => Name.鸠摩智 , 2段誉 => Name.段誉 , 3阿紫 => Name.阿紫 , 4虚竹 => Name.虚竹 , 5慕容复 => Name.慕容复 , 66Name.虚竹Name.鸠摩智

上面我们就获得了Numbers类型的枚举类,可以直接使用: Numbers.乔峰 来引用一个常量,或者枚举它的所有成员。

value属性则是自动赋给成员的int常量,默认从1开始计数。
可见,我们既可以用成员名称引用枚举常量,又可以直接根据value的值获得枚举常量。我们再看一个例子:

from enum import Enumclass Gender(Enum):    Male = "男"    Female = "女"class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = genderp = Person('乔峰', Gender.Male)if p.gender == Gender.Male:  # 输出 纯爷们    print('存爷们!') else:    print('俺娘说了!')

 

转载于:https://www.cnblogs.com/phpper/p/10627365.html

你可能感兴趣的文章
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>