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二分法搜索算法实例分析
May 11 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Python基于requests库爬取网站信息
Mar 02 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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
apache php模块整合操作指南
2012/11/16 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
基于jquery库的tab新形式使用
2012/11/16 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
常用的javascript设计模式
2017/01/11 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
Python yield使用方法示例
2013/12/04 Python
Python求解平方根的方法
2015/03/11 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
大学生就业自荐信
2013/10/26 职场文书
广告设计专业自荐信范文
2013/11/14 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
道歉信怎么写
2015/05/12 职场文书
分享3个非常实用的 Python 模块
2022/03/03 Python
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers