本文實例總結了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程序設計有所幫助。