Python中模拟enum枚举类型的5种方法分享


Posted in Python onNovember 22, 2014

以下几种方法来模拟enum:(感觉方法一简单实用)

# way1

class Directions:

    up = 0

    down = 1

    left = 2

    right =3

    

print Directions.down
# way2

dirUp, dirDown, dirLeft, dirRight = range(4)
print dirDown
# way3

import collections

dircoll=collections.namedtuple('directions', ('UP', 'DOWN', 'LEFT', 'RIGHT'))

directions=dircoll(0,1,2,3)
print directions.DOWN
# way4

def enum(args, start=0):

    class Enum(object):

        __slots__ = args.split()
        def __init__(self):

            for i, key in enumerate(Enum.__slots__, start):

                setattr(self, key, i)
    return Enum()
e_dir = enum('up down left right')
print e_dir.down
# way5

# some times we need use enum value as string

Directions = {'up':'up','down':'down','left':'left', 'right':'right'}
print Directions['down']

Python 相关文章推荐
python小技巧之批量抓取美女图片
Jun 06 Python
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
python实现井字棋游戏
Mar 30 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
python距离测量的方法
Mar 06 Python
python微信好友数据分析详解
Nov 19 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
python for和else语句趣谈
Jul 02 Python
Django实现后台上传并显示图片功能
May 29 Python
python 使用建议与技巧分享(四)
Aug 18 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 Python
Python读写Excel文件方法介绍
Nov 22 #Python
Python中的包和模块实例
Nov 22 #Python
Python动态加载模块的3种方法
Nov 22 #Python
收集的几个Python小技巧分享
Nov 22 #Python
Python获取Windows或Linux主机名称通用函数分享
Nov 22 #Python
Python中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 #Python
Python中使用SAX解析xml实例
Nov 21 #Python
You might like
php header()函数使用说明
2008/07/10 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
keep-alive不能缓存多层级路由菜单问题解决
2020/03/10 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
对Python实现累加函数的方法详解
2019/01/23 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
通过python检测字符串的字母
2020/02/18 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
应届毕业生自我评价分享
2013/12/15 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
爬山的活动方案
2014/08/16 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
开展警示教育活动总结
2015/05/09 职场文书
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android
Linux安装Docker详细教程
2022/07/07 Servers