In diesem Tutorial wollen wir das Konzept der Aufzählungen (Enumerationen) oder kurz Enums in Python (Python Enum) kennenlernen.
Aufzählungen sind wichtig zu verstehen, wenn man mit einer bestimmten Programmiersprache arbeitet. Sie helfen uns, eine Sache oder eine Gruppe von Dingen, die auf die eine oder andere Weise miteinander verbunden sind, zu bezeichnen, anzuzeigen oder zu symbolisieren.
In den meisten Programmiersprachen werden Aufzählungen als Datentypen behandelt. Sie werden mithilfe einer Klasse deklariert. Sie werden dann gemeinsam verwendet, um mit einer bestimmten Funktion oder Methode zu arbeiten, die auf ihren Eigenschaften basiert.
Wir wollen versuchen zu verstehen, wie man ein Python Enum erstellt und wie man auf ebendieses zugreift.
Python Enum – die Grundlagen
Wie bereits erwähnt, werden Enumerationen (engl. Enumerations) in der Regel mithilfe einer Klasse erstellt. In Python verwenden wir dafür das Enum / Enum-Base-Modul. Wir wollen nun versuchen, einen Aufzählungstyp zu erstellen, der aus Objekten besteht, die als Früchte dargestellt werden. In Python kann dies beispielsweise mithilfe des folgenden Codeblocks geschehen.
# Import des Moduls mit dem Namen `enum` import enum class Fruechte(enum.Enum): # Erzeuge die Klasse apfel = 1 mango = 2 kiwi = 3
Nachdem wir unsere Aufzählung nun erstellt haben, können wir jetzt versuchen, die Werte, Repräsentationen und Typen der Früchte in der Aufzählung auszugeben.
# Gib den Namen der Enumeration aus print("Name der Frucht: ", end="") print(Fruechte.apfel) # Gib seine Repräsentation aus print("Repräsentation der Frucht ist: ", end="") print(repr(Fruechte.apfel)) # Gib die Datentypen der einzelnen enum-Elemente mithilfe von type() aus: print("Der Datentyp der Frucht ist: ", end="") print(type(Fruechte.apfel))
Wie wir aus dem obigen Code ersehen können, können wir mit den Funktionen repr
und type
auf den Namen, die Darstellung und den Typ einer Frucht zugreifen.
Die Ausgabe des oben genannten Codes sieht wie folgt aus:

Über eine Aufzählung iterieren
Versuchen wir zu verstehen, wie wir über eine Aufzählung iterieren können. Wir verwenden die gleiche Aufzählung Fruechte
, die mit dem enum
-Modul und der Klasse in Python wie folgt erstellt wurde:
# Import des Moduls mit dem Namen `enum` import enum class Fruechte(enum.Enum): # Erzeuge die Klasse apfel = 1 mango = 2 kiwi = 3
Nun wollen wir eine Python for-Schleife verwenden und versuchen, die String-Darstellung jedes einzelnen Elements oder jeder einzelnen Variablen der Klasse auszugeben. Dies kann mithilfe des folgenden Codes geschehen:
# Über alle Mitglieder der Klasse iterieren print("Alle Mitglieder der Klasse Früchte: ") for frucht in Fruechte: print(frucht)
Die Ausgabe des oben genannten Codeblocks kann wie folgt dargestellt werden:

Auf ähnliche Weise können wir auch die Typen der Objekte innerhalb der Klasse oder die Repräsentation der Mitglieder (engl. Enum Member / Enum Members) innerhalb der Klasse mithilfe einer Schleife ausgeben. Dies lässt sich mithilfe des folgenden Codeblocks recht einfach zeigen:
# Über alle Mitglieder der Klasse iterieren print("Die Repräsentationen der einzelnen Klassenmitgleider sind: ") for frucht in Fruechte: print(repr(frucht))
Die Ausgabe des oben genannten Codes kann wie folgt dargestellt werden:

Um alle Typen zu ermitteln, können wir den folgenden Code verwenden:
# Über alle Mitglieder der Klasse iterieren print ("Der jeweilige Datentyp der Mitglieder der Klasse Fruechte:") for frucht in (Fruechte): print(type(frucht))
Die Ausgabe des oben genannten Codes kann wie folgt sein:

Damit haben wir erfolgreich eine Schleife über unsere Enumeration erstellt und somit gezeigt, dass sie problemlos iterierbar sind.
Jetzt wollen wir versuchen zu verstehen, wie man ein Dictionary zusammen mit einer Enumeration verwenden kann:
Verwendung eines Dictionarys mit einer Enumeration
Versuchen wir zu sehen, ob wir ein Dictionary auf ein Mitglied einer Klasse anwenden können. Das würde uns helfen zu beweisen, dass Enumerationen hashfähig sind. Das lässt sich mithilfe des folgenden Codes in Python zeigen:
# Das Modul `enum` importieren import enum class Fruechte(enum.Enum): # Erzeuge die Klasse apfel = 1 mango = 2 kiwi = 3 # Hashing der Werte der Klasse `Fruechte` hashmap = {} hashmap[Fruechte.apfel] = "rot" hashmap[Fruechte.mango] = "gelb" # Ausgabe der Ergebnisse der Hashmap: if hashmap == {Fruechte.apfel: "rot", Fruechte.mango: "gelb"}: print("Die Farben sind gehasht") else: print("Die Farben sind nicht gehasht!")
Die Ausgabe des oben genannten Codes ist wie folgt:

Wie wir in der obigen Ausgabe sehen können, werden unsere Werte oder Mitglieder der Klasse Fruechte
gehasht.
Zusammenfassung: Das Python Enum
Wir haben uns in diesem Tutorial kurz die Funktionsweise des Python Enum-Moduls und seine Kombination mit verschiedenen Funktionen wie repr
und type
und Schleifen wie der for-Schleife angeschaut. Das hilft uns zu beweisen, dass Enumerationen (Aufzählungen) sowohl iterierbar als auch hashfähig sind. Wenn ein Programmierer mit Enumerationen arbeitet, so sollte er ihre Anwendungsmöglichkeiten kennen.