Python 中的列舉
在本教程中,我們將研究在 Python 中使用或實現列舉的不同方法。enum
或列舉是一種特殊的類,表示一組數字型別的命名常量。enum
型別的每個命名常量都有其自己的整數值,該值取決於集合的命名常量位置。
在許多程式語言(例如 C#,Java,Go,C 和 C++ 等)中,enum
型別用於將常量名稱分配給整數值集。我們可以使用以下方法在 Python 中實現和使用列舉型別解釋如下。
在 Python 中使用 enum
模組實現列舉型別
Python 的 enum
模組具有四個類,即 enum
,IntEnum
,Flag
和 IntFlag
,有關該模組和類的更多詳細資訊,請參見這個連結。
在 Enum
類中,預設情況下,每個名稱常量的值都是整數,但我們也可以傳遞資料型別,例如字串或浮點數等。顧名思義,IntEnum
類的名稱常量的值可以只能是整數。
我們可以使用 Enum
和 IntEnum
類在 Python 中建立和使用列舉。以下示例程式碼演示瞭如何使用這些類在 Python 中實現不同型別的列舉器。
簡單的列舉器:
from enum import Enum
Names = Enum("Names", ["Waiz", "Tom", "Sara", "Lee"])
我們可以使用 (name, value)
對的迭代器來儲存每個名稱的特定值,這些名稱代表名稱常量的 id 或標記等。我們可以使用 Enum.nameconstant.value
訪問名稱常量值和名稱,並使用 Enum.nameconstant.name
訪問名稱。
我們可以使用以下示例程式碼在 Python 中進行操作。
from enum import Enum
Names = Enum("Names", [("Waiz", 8), ("Tom", 5), ("Sara", 7), ("Lee", 6)])
print(Names.Sara.value)
print(Names.Waiz.name)
輸出:
7
Waiz
建立列舉數的另一種方法是使用類語法,然後傳遞 Enum
或 IntEnum
,如下面的示例程式碼所示:
from enum import IntEnum
class Student(IntEnum):
Waiz = 1
Ali = 2
John = 3
Lee = 4
print(Student.Lee.value)
輸出:
4
在 Python 中使用常規類語法實現列舉
在低於 2.4 的 Python 版本中,Enum
模組不可用,在這種情況下,我們可以使用類語法實現自己的列舉器 Enum
的類。
我們可以像 enum
模組的 Enum
類中那樣,以預設值從 1
開始實現簡單的列舉器類,如以下示例程式碼所示:
class Zoo:
Lion, Tiger, Cheetah, Leopard = range(1, 5)
print Zoo.Lion
輸出:
1