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中argparse模块用法实例详解
Jun 03 Python
回调函数的意义以及python实现实例
Jun 20 Python
用python制作游戏外挂
Jan 04 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 Python
python3判断url链接是否为404的方法
Aug 10 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
Oct 11 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 Python
如何使用pdb进行Python调试
Jun 30 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的FTP学习(二)
2006/10/09 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
浅谈js闭包理解
2019/03/28 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
python打开windows应用程序的实例
2019/06/28 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
python 制作本地应用搜索工具
2021/02/27 Python
面包店的创业计划书范文
2014/01/16 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
读书演讲主持词
2014/03/18 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
单位实习鉴定评语
2015/01/04 职场文书
生日答谢词
2015/01/05 职场文书
Python基础之进程详解
2021/05/21 Python
python操作xlsx格式文件并读取
2021/06/02 Python
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL