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 测试实现方法
Dec 24 Python
Python中__name__的使用实例
Apr 14 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
简要讲解Python编程中线程的创建与锁的使用
Feb 28 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python数据类型强制转换实例详解
Jun 22 Python
python实现学生通讯录管理系统
Feb 25 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
用python删除文件夹中的重复图片(图片去重)
May 12 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创建动态图像
2006/10/09 PHP
PHP4.04简明安装
2006/10/09 PHP
php学习之流程控制实现代码
2011/06/09 PHP
PHP图片上传代码
2013/11/04 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
简单的php购物车代码
2020/06/05 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
给Python初学者的一些编程技巧
2015/04/03 Python
Python Requests 基础入门
2016/04/07 Python
python操作 hbase 数据的方法
2016/12/18 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
化工工艺专业求职信
2013/09/22 职场文书
大学生的网络创业计划书
2013/12/26 职场文书
学校安全防火方案
2014/06/07 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
python中数组和列表的简单实例
2022/03/25 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL