本文实例总结了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程序设计有所帮助。