Python Enum: Der große Guide für das Python Enumerate

    Avatarbild von Preet Sanghavi
    Preet Sanghavi

    veröffentlicht am: 25.05.2022
    zuletzt aktualisiert am: 02.02.2023

    Das Python Enum: Der große Guide inklusive Inhaltsverzeichnis (Table of Contents)

    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:

    Das Python Enum: So erstellst du ein Python Enumerate!

    Ü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:

    So können wir über ein Python Enum iterieren!

    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:

    Enumeration Member / Enumeration Members: So arbeitest du mit den einzelnen Mitgliedern!

    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:

    Python versucht mit Klassen (Python Classes), insbesondere der Enum-Klasse (Enumeration Classes) den Datentypen zu repräsentieren.

    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 Dictionaries mit einem Enum

    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:

    Mit dem Dictionary und dem Python Enum Module können wir einzelne Werte wie color.red hashen und durch Strings oder Zahlen repräsentieren (String Representation).

    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.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "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

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig