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 快速排序代码
Nov 23 Python
深入解析Python的Tornado框架中内置的模板引擎
Jul 11 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
python中的json总结
Oct 11 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
Python3.5字符串常用操作实例详解
May 01 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
Python使用requests模块爬取百度翻译
Aug 25 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
python中if和elif的区别介绍
Nov 07 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
php在字符串中查找另一个字符串
2008/11/19 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
Node.js实现文件上传
2016/07/05 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python实现获取某天是某个月中的第几周
2015/02/11 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python使用建议技巧分享(三)
2020/08/18 Python
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
三分钟演讲稿范文
2014/04/24 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
小学生通知书评语
2014/12/31 职场文书
工程部文员岗位职责
2015/02/04 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
运动会主持词大全
2015/07/02 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL