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 类与元类的深度挖掘 I【经验】
May 06 Python
python实现石头剪刀布程序
Jan 20 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
python3转换code128条形码的方法
Apr 17 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
python实现淘宝购物系统
Oct 25 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
pycharm软件实现设置自动保存操作
Jun 08 Python
Python代码需要缩进吗
Jul 01 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 编程安全性小结
2010/01/08 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
2017/06/07 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
Vue脚手架的简单使用实例
2018/07/10 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python获取系统默认字符编码的方法
2015/06/04 Python
python 循环while和for in简单实例
2016/08/16 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
大学生求职中的自我评价
2013/10/01 职场文书
优秀团员个人的自我评价
2013/10/02 职场文书
创建文明城市标语
2014/06/16 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
悬空寺导游词
2015/02/05 职场文书
学生犯错保证书
2015/05/09 职场文书
计划生育目标责任书
2015/05/09 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL