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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
python之import机制详解
Jul 03 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
Django中模版的子目录与include标签的使用方法
Jul 16 Python
Python生成数字图片代码分享
Oct 31 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
Python3中关于cookie的创建与保存
Oct 21 Python
Django开发的简易留言板案例详解
Dec 04 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
500行python代码实现飞机大战
Apr 24 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实现简单的上传进度条
2015/11/17 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
用JavaScript隐藏控件的方法
2009/09/21 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
python中requests小技巧
2017/05/10 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python遍历pandas数据方法总结
2018/02/09 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
Django开发中的日志输出的方法
2018/07/02 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python用Configobj模块读取配置文件
2020/09/26 Python
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
外贸业务员求职自荐信分享
2013/09/21 职场文书
项目副经理岗位职责
2013/12/30 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
初中军训感想300字
2014/03/05 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
教师见习报告范文
2014/11/03 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
通知函格式范文
2015/04/27 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python