|
|
发表于 2015-1-12 19:49:38
|
显示全部楼层
本帖最后由 小甲鱼的二师兄 于 2015-1-12 19:52 编辑
方法1. 使用自定义类
- 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的集合扩展来的对象
- view sourceprint?
- 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
复制代码
|
|