Python中模拟enum枚举类型的5种方法分享

yipeiwu_com5年前Python基础

以下几种方法来模拟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']


相关文章

解决PyCharm控制台输出乱码的问题

解决PyCharm控制台输出乱码的问题

最近公司新换了台电脑,各种开发环境要重新配置,想想Paas确实还是有市场的,如果有了,这种情况可以省下不少气力。吐槽一下,言归正传 装完python后,继续装好PyCharm。把之前的程...

Python语言的变量认识及操作方法

今天我给大家介绍的是python中的Number变量,与c++,java有些不同,下面让来为大家介绍: 在python中是不用声明变量类型的,不过在使用变量前需要对其赋值,没有值得变量是...

深入解析Python中的集合类型操作符

(1)标准类型操作符(所有的集合类型) 成员关系 (in, not in)         就序列而言,Python...

python matplotlib中文显示参数设置解析

python matplotlib中文显示参数设置解析

最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。 PS:本文仅针对Windows,其他平台仅供参考。 原因 大致...

不到40行代码用Python实现一个简单的推荐系统

不到40行代码用Python实现一个简单的推荐系统

什么是推荐系统 维基百科这样解释道:推荐系统属于资讯过滤的一种应用。推荐系统能够将可能受喜好的资讯或实物(例如:电影、电视节目、音乐、书籍、新闻、图片、网页)推荐给使用者。 本质上是...