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 thrift搭建服务端和客户端测试程序
Jan 17 Python
python os.path模块常用方法实例详解
Sep 16 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
用python爬取租房网站信息的代码
Dec 14 Python
python实现定时发送qq消息
Jan 18 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
python字符串查找函数的用法详解
Jul 08 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
python实现逻辑回归的示例
Oct 09 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
Python3中的tuple函数知识点讲解
Jan 03 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计算页面执行时间的实现代码
2013/06/18 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
Highcharts入门之简介
2016/08/02 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Python文件路径名的操作方法
2019/10/30 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
python自动下载图片的方法示例
2020/03/25 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
大家访活动实施方案
2014/03/10 职场文书
幼儿园招生广告
2014/03/19 职场文书
幼儿园教师自我鉴定
2014/03/20 职场文书
2014离婚协议书范文
2014/09/10 职场文书
医院见习报告范文
2014/11/03 职场文书
我的长征观后感
2015/06/09 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏