浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 

完!

感谢,Thanks!

posted on 2012-05-05 20:31  lexus  阅读(231)  评论(0编辑  收藏  举报