veröffentlicht am: 25.05.2022 zuletzt aktualisiert am: 02.02.2023
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.
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.
repr
type
Die Ausgabe des oben genannten Codes sieht wie folgt aus:
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:
Fruechte
enum
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:
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.
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.
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig