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 代码优化详解
Oct 27 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
python判断完全平方数的方法
Nov 13 Python
python中正则表达式与模式匹配
May 07 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
python cumsum函数的具体使用
Jul 29 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
pandas按条件筛选数据的实现
Feb 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抓取https的内容的代码
2010/04/06 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
php常用字符函数实例小结
2016/12/29 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
uni-app实现点赞评论功能
2019/11/25 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
python将文本转换成图片输出的方法
2015/04/28 Python
python学习之编写查询ip程序
2016/02/27 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
西部世纪面试题
2014/12/05 面试题
校园安全演讲稿
2014/05/09 职场文书
公司节能减排方案
2014/05/16 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL