python模拟enum枚举类型的方法小结


Posted in Python onApril 30, 2015

本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下:

python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型

方法1. 使用自定义类

class Numbers(object):
  ONE = 1
  TWO = 2
  THREE = 3
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3

方法2:使用函数动态创建类

def enum(**enums):
  return type('Enum', (object,), enums)
Numbers = enum(ONE=1, TWO=2, THREE=3)
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3

方法3:创建一个从python的集合扩展来的对象

class Enum(set):
  def __getattr__(self, name):
    if name in self:
      return name
    raise AttributeError
Numbers = Enum( "ONE TWO THREE".split() )
error = False
try:
  print Numbers.ONE
  print Numbers.TWO
  print Numbers.THREE
except:
  error = True
assert error == False
try:
  print Numbers.FOUR
except:
  error = True
assert error == True

希望本文所述对大家的python程序设计有所帮助。

Python 相关文章推荐
python之wxPython菜单使用详解
Sep 28 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
python自动化脚本安装指定版本python环境详解
Sep 14 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 Python
PyTorch基本数据类型(一)
May 22 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
django实现支付宝支付实例讲解
Oct 17 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
Python任务调度利器之APScheduler详解
Apr 02 Python
Python接收手机短信的代码整理
Aug 02 Python
python中随机函数random用法实例
Apr 30 #Python
python使用mailbox打印电子邮件的方法
Apr 30 #Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 #Python
python同时给两个收件人发送邮件的方法
Apr 30 #Python
python通过邮件服务器端口发送邮件的方法
Apr 30 #Python
在Python的web框架中中编写日志列表的教程
Apr 30 #Python
python登录pop3邮件服务器接收邮件的方法
Apr 30 #Python
You might like
php写入数据到CSV文件的方法
2015/03/14 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
PHP7 新增常量
2021/03/09 PHP
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
jsonp跨域请求实现示例
2017/03/13 Javascript
js实现旋转木马效果
2017/03/17 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
Python实现股市信息下载的方法
2015/06/15 Python
Python装饰器用法实例总结
2018/02/07 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
Python如何发送与接收大型数组
2020/08/07 Python
文秘专业应届生求职信
2014/05/26 职场文书
小学教师节活动总结
2015/03/20 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers