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程序中访问Java类的简单示例
Apr 20 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
Python OrderedDict字典排序方法详解
May 21 Python
详解Pymongo常用查询方法总结
Jan 29 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 二维数组和三维数组的过滤
2016/03/16 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python解释器spython使用及原理解析
2019/08/24 Python
python 实现图片裁剪小工具
2021/02/02 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
外企C语言笔试题
2013/11/10 面试题
Python里面如何拷贝一个对象
2014/02/17 面试题
物业管理计划书
2014/01/10 职场文书
党员演讲稿
2014/09/04 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android