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 相关文章推荐
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
对于Python编程中一些重用与缩减的建议
Apr 14 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
django admin组件使用方法详解
Jul 19 Python
python提取xml里面的链接源码详解
Oct 15 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
PyInstaller运行原理及常用操作详解
Jun 13 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 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中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
python 美化输出信息的实例
2018/10/15 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
京东国际站:JOYBUY
2017/11/23 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
幼儿运动会邀请函
2014/01/17 职场文书
清扬洗发水广告词
2014/03/14 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL