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中xrange和range的区别
May 13 Python
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
Python标准库之随机数 (math包、random包)介绍
Nov 25 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
python实现汽车管理系统
Nov 30 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
Python3 列表,数组,矩阵的相互转换的方法示例
Aug 05 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
python解释器pycharm安装及环境变量配置教程图文详解
Feb 26 Python
python 读取二进制 显示图片案例
Apr 24 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 Python
基于Python中random.sample()的替代方案
May 23 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中目录,文件操作详谈
2007/03/19 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
php中strtotime函数性能分析
2016/11/20 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
JS实现鼠标移动拖尾
2020/12/27 Javascript
Python实现定时任务
2017/02/08 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
python urllib和urllib3知识点总结
2021/02/08 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
麦当劳辞职信范文
2014/01/18 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
留学生求职信
2014/06/03 职场文书
谢师宴答谢词
2015/01/05 职场文书
英文辞职信范文
2015/05/13 职场文书
党支部鉴定意见
2015/06/02 职场文书
社团招新宣传语
2015/07/13 职场文书