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实现竖排打印传单手机号码易撕条
Mar 16 Python
Python+django实现简单的文件上传
Aug 17 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
python使用matplotlib绘制热图
Nov 07 Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
python matplotlib拟合直线的实现
Nov 19 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
linux 下selenium chrome使用详解
Apr 02 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
利用Python实现模拟登录知乎
May 25 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(6) 面向对象
2010/02/16 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中除法使用的注意事项
2014/08/21 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python字符串的方法与操作大全
2018/01/30 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python占位符输入方式实例
2019/05/27 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Python控制台实现交互式环境执行
2020/06/09 Python
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
《狐假虎威》教学反思
2014/02/07 职场文书
初中生评语大全
2014/04/24 职场文书
机器人总动员观后感
2015/06/09 职场文书
英语读书笔记
2015/07/02 职场文书