• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

python模拟enum枚举类型

python 水墨上仙 2749次浏览

python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型

方法1.&nbsp使用自定义类



class Numbers(object):
    ONE = 1
    TWO = 2
    THREE = 3
 
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3

方法2:使用函数动态创建类



def enum(**enums):
    return type('Enum', (object,), enums)
 
Numbers = enum(ONE=1, TWO=2, THREE=3)
 
assert Numbers.ONE == 1
assert Numbers.TWO == 2
assert Numbers.THREE == 3

方法3:创建一个从python的集合扩展来的对象




class Enum(set):
    def __getattr__(self, name):
        if name in self:
            return name
        raise AttributeError
 
Numbers = Enum( "ONE TWO THREE".split() )
 
error = False
try:
    print Numbers.ONE
    print Numbers.TWO
    print Numbers.THREE
except:
    error = True
assert error == False
 
try:
    print Numbers.FOUR
except:
    error = True
assert error == True


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python模拟enum枚举类型
喜欢 (0)
加载中……