So erstellen Sie Aufzüge in Python

So erstellen Sie Aufzüge in Python
In diesem Artikel wird eine Anleitung zur Verwendung von „Enum“ -Objekten in Python behandelt. Mit einem Auflauf oder einer Aufzählungsklasse können Sie eindeutige Konstanten erstellen, deren Wert in Python -Programmen und -Anwendungen unverändert bleibt. Alle Codeproben in diesem Artikel werden mit Python 3 getestet.9.5 auf Ubuntu 21.04.

Über Python Enums

Wie bereits erwähnt, sind Enums Objekte mit konstanten Werten mit konstanten Werten. Sie haben symbolische oder repräsentative Namen, die an ihre jeweiligen Werte verbunden sind. Sie ähneln in ähnlicher Weise anderen Python-Variablen, sind jedoch mit einigen einzigartigen Funktionen wie Typ-sicherer Objekte und Gruppierung ausgestattet. In Python werden Enums immer unter Verwendung der oberen Fallzeichen dargestellt, um anzuzeigen, dass sie konstante Werte haben. Enums sind in Fällen besonders nützlich, wenn Sie über einen vordefinierten Bereich möglicher Werte verfügen und Sie nur begrenzte Auswahlmöglichkeiten in Ihrer Programmlogik auswählen und verweisen müssen. Die Verwendung von Enums in Python kann am besten anhand von Beispielen verstanden werden. Einige von ihnen werden unten erklärt.

Erstellen von Enums

Sie können Aufzüge erstellen, indem Sie eine neue Klasse erstellen, die die Enum -Klasse selbst erbt. Schauen Sie sich das Code -Beispiel unten an:

von Enum Import Enum
Klassenfarbe (Enum):
Gelb = 1
Schwarz = 2
Weiß = 3
Lila = 4
Orange = 5
Druck (Farbe (1))
print (repr (color (1)))
Druck (Farbe.GELB)
drucken (type (Farbe.GELB))
Druck (Farbe.GELB.Name)
Druck (Farbe.GELB.Wert)

Die erste Anweisung importiert die Enum -Klasse aus dem Enum -Modul. Als nächstes wird eine neue Klasse namens "Farbe" durch Erben der Enum -Klasse erstellt. Einige Variablen (Enum -Mitglieder) werden dann mit konstanten Werten erstellt. Diese Variablen stellen fünf mögliche Auswahlmöglichkeiten dar. Die nächsten paar Druckanweisungen zeigen, wie Sie auf diese Aufzüge, ihre Namen und Werte zugreifen können. Diese Aussagen sind selbsterklärend. Um auf eine mögliche Auswahl zuzugreifen, können Sie die Punktnotation verwenden oder einem bekannten Wert als Argument für die Klasse angeben. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Farbe.GELB
Farbe.GELB
GELB
1

Wie Sie in der Ausgabe sehen können, gibt es verschiedene Möglichkeiten, wie Sie auf Enum -Mitglieder zugreifen können. Beachten. So beziehen sich auf Farbe.Gelb wird die Farbe zurückgeben.Gelb und nicht 1.

Iterieren durch Enums

Sie können durch ein Enum -Typ -Objekt itererieren und seine Mitglieder mithilfe von Schleifenanweisungen erhalten.

von Enum Import Enum
Klassenfarbe (Enum):
Gelb = 1
Schwarz = 2
Weiß = 3
Lila = 4
Orange = 5
Für C in Farbe:
Druck (c.Name, c.Wert)

Mit der Variablen „C“ können Sie auf jedes Mitglied des Objekts des Farbumumtyps zugreifen. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten.

Gelb 1
Schwarz 2
Weiß 3
Lila 4
Orange 5

Name der Enum -Mitglieder müssen eindeutig sein, aber doppelte Werte sind zulässig

Sie können nicht zwei Enum -Mitglieder mit demselben Namen erstellen, aber ihre Werte haben keine solchen Einschränkungen. Das folgende Code -Beispiel wirft einen Fehler auf, da zwei Enum -Mitglieder mit denselben Namen vorhanden sind.

von Enum Import Enum
Klassenfarbe (Enum):
Schwarz = 1
Schwarz = 2
Weiß = 3
Lila = 4
Orange = 5

Nach dem Ausführen des obigen Code -Beispiels sollten Sie einen ähnlichen Fehler erhalten:

Datei "/usr/lib/python3.9/Enum.Py ", Zeile 133, in __setItem__
typeerror erhöhen ('versuchte, Schlüssel wieder zuverwenden: % R' % Schlüssel)
TypeError: Versuch, Schlüssel wieder zuverwenden: 'Schwarz'

Wie Sie in der Ausgabe sehen können, sind doppelte Namen für Enum -Mitglieder nicht zulässig. Der folgende Code ist jedoch gültig, wenn zwei Enum -Mitglieder die gleichen Werte haben.

von Enum Import Enum
Klassenfarbe (Enum):
Gelb = 2
Schwarz = 2
Weiß = 3
Lila = 4
Orange = 5

Wenn Sie auch einzigartige Werte für Enum -Mitglieder zusammen mit ihren Namen erzwingen möchten, können Sie „eindeutige“ Dekorateur verwenden, um doppelte Werte zu verhindern.

von Enum Import Enum, einzigartig
@einzigartig
Klassenfarbe (Enum):
Gelb = 2
Schwarz = 2
Weiß = 3
Lila = 4
Orange = 5

Die Dekorateurin "@Unique" erzwingt die Enum -Enum -Objekte, um einen Fehler zu werfen, wenn die Enum -Mitglieder doppelte Werte zugewiesen sind. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Datei "/usr/lib/python3.9/Enum.Py ", Zeile 989, in einzigartiger
ValueError erhöhen ('doppelte Werte in %r: %s' %gefunden
ValueError: doppelte Werte in: schwarz -> gelb gefunden

Automatische Werte für die Enum -Mitglieder zuweisen

Wenn die Werte von Enum -Mitgliedern für Sie keine Rolle spielen, können Sie die im Enum -Modul verfügbare „Auto“ -Methode verwenden, um die enum -Mitglieder automatisch sequentielle Zahlen zuzuweisen.

von Enum Import Enum, Auto
Klassenfarbe (Enum):
Gelb = auto ()
Schwarz = auto ()
Weiß = auto ()
Lila = auto ()
Orange = auto ()
Für C in Farbe:
Druck (c.Name, c.Wert)

Wie Sie in der Code -Probe Aboved sehen können, wurde die Autofunktion beim Erstellen jedes Mitglieds aufgerufen, anstatt explizit einige Werte zuzuweisen. Die Auto -Methode weist immer 1 als erster Wert zu. Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

Gelb 1
Schwarz 2
Weiß 3
Lila 4
Orange 5

Abschluss

Enums Type -Objekte in Python ermöglichen es Ihnen, Variablen mit konstantem Stil mit eindeutigen Namen zu erstellen. Diese Variablen, die normalerweise Enum -Mitglieder bezeichnet werden, können durch menschliche lesbare Zeichenfolgen dargestellt werden. Enums sind besonders nützlich, wenn Sie eine oder mehrere Auswahlmöglichkeiten aus einer Gruppe begrenzter Optionen auswählen möchten.