python技巧31[python中使用enum]

 

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

 

问题:有的时候需要使用enum的值作为字符串使用,像way5中表示的,大家有没有更好的办法?

 

参考:http://audbel.com/0/5009691

 

完!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值