本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下:
python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模拟enum枚举类型
方法1. 使用自定义类
1
2
3
4
5
6
7
|
class Numbers( object ):
ONE = 1
TWO = 2
THREE = 3
assert Numbers.ONE = = 1
assert Numbers.TWO = = 2
assert Numbers.THREE = = 3
|
方法2:使用函数动态创建类
1
2
3
4
5
6
|
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的集合扩展来的对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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程序设计有所帮助。