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 27 Python
python中列表元素连接方法join用法实例
Apr 07 Python
python和bash统计CPU利用率的方法
Jul 10 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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与SQL语句常用大全
2016/12/10 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
js实现聊天对话框
2020/02/08 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
python抓取网页中链接的静态图片
2018/01/29 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
深入浅析Python中的迭代器
2019/06/04 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
学习方法演讲稿
2014/05/10 职场文书
体现团队精神的口号
2014/06/06 职场文书
Java实现带图形界面的聊天程序
2022/06/10 Java/Android