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 22 Python
详解Python3中的Sequence type的使用
Aug 01 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
python 文件转成16进制数组的实例
Jul 09 Python
python使用matplotlib模块绘制多条折线图、散点图
Apr 26 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 Python
django中websocket的具体使用
Jan 22 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的几个常用数字判断函数代码
2012/04/24 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
php实现微信公众号无限群发
2015/10/11 PHP
php实现socket推送技术的示例
2017/12/20 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python实现用户答题功能
2018/01/17 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
党员民主评议自我评价
2014/10/20 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS