首頁 >後端開發 >Python教學 >如何在 Python 中表示枚舉?

如何在 Python 中表示枚舉?

DDD
DDD原創
2025-01-04 20:43:41335瀏覽

How Can I Represent Enums in Python?

在Python 中表示枚舉

枚舉是現代程式設計實踐的一個重要方面,它可以表示有限且固定的值集。在 Python 中,可以採用多種方法來表示枚舉,為開發人員提供了與各種 Python 版本的靈活性和相容性。

標準函式庫枚舉 (Python 3.4 )

隨著出現Python 3.4 引入了標準化枚舉實現。參考 PEP 435,您可以利用內建枚舉模組中的 Enum 類別。這種方法符合 Python 簡潔易用的理念。

範例:

from enum import Enum

Animal = Enum('Animal', 'ant bee cat dog')

print(Animal.ant)  # Output: <Animal.ant: 1>
print(Animal['ant'].name)  # Output: 'ant'

第三方函式庫

對於3.4 之前的Python 版本,第三方程式庫提供了可靠的enum 解決方案實施。兩個流行的選項是:

  • enum34: 將 Python 3.4 Enum 類別向後移植到舊版本,提供相容的介面。
  • aenum: 具有附加功能的高級枚舉庫,例如自動將名稱解析為

使用enum34 的示例:

from enum34 import Enum

Animal = Enum('Animal', 'ant bee cat dog')

print(Animal.ant)  # Output: <Animal.ant: 1>
print(Animal.ant.name)  # Output: 'ant'

手動枚舉實作(Python 3.4 之前)

在 Python 3.4 中包含枚舉之前,開發人員採用自訂方法。常見的方法是使用 @property 裝飾器建立一個類別來定義枚舉值。

範例:

class Animal:
    ant = 1
    bee = 2
    cat = 3
    dog = 4

print(Animal.ant)  # Output: 1
print(Animal.cat.name)  # Error: 'int' object has no attribute 'name'

這種方法缺乏標準化枚舉的安全性和便利性但仍保留向後相容的選項。

輸入別名 (Python 3.8 )

最近引入的類型別名為類似枚舉的行為提供了另一種選擇。 Literal 類型可讓您指定一組固定值。

範例:

from typing import Literal

Animal: Literal['ant', 'bee', 'cat', 'dog'] = 'ant'

但是,這種方法缺乏傳統枚舉的強大功能,例如自動名稱到值解析。

以上是如何在 Python 中表示枚舉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn