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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
详解python 发送邮件实例代码
Dec 22 Python
利用python画一颗心的方法示例
Jan 31 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
django页面跳转问题及注意事项
Jul 18 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
python实现mean-shift聚类算法
Jun 10 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
通过Python把学姐照片做成拼图游戏
Feb 15 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
咖啡常见的种类
2021/03/03 新手入门
PHP下几种删除目录的方法总结
2007/08/19 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
懒加载实现的分页&&网站footer自适应
2016/12/21 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
用Python进行行为驱动开发的入门教程
2015/04/23 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python中format函数如何使用
2020/06/22 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
编辑个人求职信范文
2013/09/21 职场文书
电话客服工作职责
2014/07/27 职场文书
财务整改报告范文
2014/11/05 职场文书
聘任合同书
2015/09/21 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
同学联谊会邀请函
2019/06/24 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
变长双向rnn的正确使用姿势教学
2021/05/31 Python
如何使用SQL Server语句创建表
2022/04/12 SQL Server
SQL Server中使用表变量和临时表
2022/05/20 SQL Server