Wie kann ich ein 'Enum' in Python darstellen?
In Python kann man eine Enum (Aufzählung) durch Verwendung des Moduls enum
oder durch Erstellen einer Klasse, die von enum.Enum
erbt, darstellen. Um das enum
-Modul zu verwenden, kann man die Aufzählung mit der Klasse Enum
wie folgt definieren:
from enum import Enum
class Farbe(Enum):
ROT = 1
GRÜN = 2
BLAU = 3
Man kann auch die Enum-Werte direkt mit der Enum()-Funktion definieren
from enum import Enum
Farbe = Enum('Farbe', ['ROT', 'GRÜN', 'BLAU'])
Sobald die Aufzählung definiert ist, kann man auf die Aufzählungswerte mit dem Namen der Aufzählung und dem Wert zugreifen, wie hier:
from enum import Enum
Farbe = Enum('Farbe', ['ROT', 'GRÜN', 'BLAU'])
print(Farbe.ROT)
Man kann auch durch alle Werte in der Aufzählung iterieren:
from enum import Enum
Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])
for farbe in Farbe:
print(farbe)
Man kann auch die value
und name
Attribute der aufgelisteten Werte verwenden um auf den Namen und den Wert jedes aufgelisteten Werts zugreifen zu können.
from enum import Enum
Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])
print(Farbe.ROT.name) # gibt 'ROT' aus
print(Farbe.ROT.value) # gibt 1 aus