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编程中super关键字的用法
Jun 24 Python
Python numpy 常用函数总结
Dec 07 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
python 平衡二叉树实现代码示例
Jul 07 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
通过代码简单了解django model序列化作用
Nov 12 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
Opencv 图片的OCR识别的实战示例
Mar 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水印
2007/03/16 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python with语句和过程抽取思想
2019/12/23 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
laravel使用redis队列实例讲解
2021/03/23 PHP
校领导推荐信
2013/11/01 职场文书
教师业务学习制度
2014/01/25 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
升职感谢信
2015/01/22 职场文书
教师旷工检讨书
2015/08/15 职场文书
小学教师教学反思
2016/02/24 职场文书
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android