在 Python 3.4 及更高版本中,可以使用 Enum 類本機定義枚舉。要使用它,請為 3.4 之前的 Python 版本安裝 enum34 套件。
from enum import Enum Animal = Enum('Animal', 'ant bee cat dog') print(Animal.ant) # Output: <Animal.ant: 1> print(Animal['ant']) # Output: <Animal.ant: 1> print(Animal.ant.name) # Output: 'ant'
要使用更進階的枚舉技術,請考慮使用 aenum 函式庫。
在早期的 Python版本中,可以使用自訂來模擬枚舉函數:
def enum(**enums): return type('Enum', (), enums)
用法:
Numbers = enum(ONE=1, TWO=2, THREE='three') print(Numbers.ONE) # Output: 1 print(Numbers.THREE) # Output: 'three'
也可以支援自動枚舉:
def enum(*sequential, **named): enums = dict(zip(sequential, range(len(sequential))), **named) return type('Enum', (), enums)
用法:
Numbers = enum('ZERO', 'ONE', 'TWO') print(Numbers.ZERO) # Output: 0 print(Numbers.TWO) # Output: 2
或者,使用Python 3.8 中的Typing.Literal或Typing_extensions.Literal 在早期版本中用於定義枚舉:
from typing import Literal # Python >= 3.8 from typing_extensions import Literal # Python 2.7, 3.4-3.7 Animal = Literal['ant', 'bee', 'cat', 'dog'] def hello_animal(animal: Animal): print(f"hello {animal}")
以上是如何在 Python 中有效地表示枚舉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!