Python String to Enum Conversion

Python String to Enum Conversion

Konvertieren von String in Enum in Python verbessert die Code -Lesbarkeit, da Enum eine konsistente Möglichkeit zum Angeben einer Reihe von verwandten Werten bietet. Diese Konvertierung erleichtert auch den Code zu pflegen. Es hilft auch bei der Vermeidung von Fehlern oder Tippfehler. Insbesondere werden die aufzähligen konstanten Werte zur Kompilierungszeit definiert, können jedoch nicht während der Ausführung geändert werden.

In diesem Blog werden die folgenden Ansätze erörtert:

  • Methode 1: String to Enum Conversion in Python mit der Funktion „getattr ()“
  • Methode 2: String to Enum Conversion in Python unter Verwendung von "__mitglieds” Attribut
  • Methode 3: String to Enum Conversion in Python mit der Enum -Klasse -Methode

Methode 1: String to Enum Conversion in Python mit der Funktion „getattr ()“

In Python, “getattr ()Ist eine integrierte Python-Funktion, die den Wert eines Objektattributs abruft. Diese Funktion akzeptiert zwei Argumente. Das erste Argument repräsentiert das ausgewählte Objekt, und das zweite bezieht sich auf das Attribut, dessen Wert Sie erhalten möchten. Insbesondere kann diese Funktion auch eine Zeichenfolge in Enum konvertieren.

Syntax

getattr (Objekt, attr_name)

Hier das "getattr ()"Funktion ruft den Wert des angegebenen Attributs ab"attr_name”Der Relevanten“Objekt”.

Beispiel

Schauen wir uns nun die Methode zum Konvertieren einer String in Enum mit der “angetattr ()”Funktion. Um dies zu tun, importieren Sie zuerst die “AufreumModul aus der Enum -Klasse:

von Enum Import Enum

Definieren Sie dann eine Enum -Klasse namens “Frucht”, Fügen Sie die aufgezählten Konstanten hinzu und geben Sie die entsprechenden Ganzzahlwerte an:

Klassenfrucht (Enum):
Apfel = 3
Mango = 6
Orange = 9

Erstellen Sie eine Zeichenfolge und speichern Sie den aufzähligen konstanten Namen darin:

fruit_str = 'Apfel'

Aufrufen "getattr ()Funktion und übergeben die “Frucht”Enum -Objekt und das neu erstellte als Attributname:

fruit_enum = getattr (frucht, fruit_str)

Drucken Sie den resultierenden Wert auf der Konsole:

print (fruit_enum)

Es kann aus der Ausgabe beobachtet werden, dass die “Frucht.ApfelIst eine aufzählige Konstante:

Allerdings ein "AttributeErrorDie Ausnahme wird ausgelöst, wenn der Attributname übergeben wird, der nicht als konstanter Umlaufwert gerechtfertigt ist:

fruit_str = 'Pfirsich'

Fügen Sie den Versuchsblock wie folgt hinzu, um die genannte Ausnahme zu verarbeiten:

versuchen:
fruit_enum = getattr (frucht, fruit_str)
print (fruit_enum)
außer AttributeError:
print (f'Error: fruit_str ist nicht in der Liste ')

Fügen Sie den Codeblock mit "hinzu"versuchenDas muss ausgeführt werden, wenn die Auflaufkonstante gefunden wurde. Geben Sie für den anderen Fall die jeweiligen Aussagen in der “anaußer" Block:

Methode 2: String to Enum Conversion in Python unter Verwendung von "__mitglieds” Attribut

Die Enum Python -Klasse bietet ein Attribut namens “__mitgliederDas wird automatisch erstellt. Dieses Attribut ähnelt eher einem Wörterbuch, das das aufzählige Element den entsprechenden Werten ordnet.

Syntax

Objekt.__mitglieder __ [attr_name]

Hier das "__mitglieder "Attribut erhält den Wert des angegebenen Attributs"attr_name”Der angegebenen Aufzählung“Objekt”.

Beispiel

Die "die" verwenden "__mitglieder”Attribut für eine String to Enum Conversion und erstellen Sie zunächst einen String, dessen Wert der erforderliche Enum -Konstante entspricht:

fruit_str = 'mango' '

Geben Sie dann den folgenden Code im Try-Except-Block Ihres Codes an:

versuchen:
fruit_enum = frucht.__mitglieder __ [fruit_str]
print (fruit_enum)
außer AttributeError:
print (f'Error: fruit_str ist nicht in der Liste ')

Die erste Anweisung im Try -Block wird versucht, auf die zuzugreifenfruit_str”Mitglied der Obst -Enum -Klasse mit dem“__mitglieder”Attribut. Wenn die angegebene Zeichenfolge mit einem der Enum -Konstanten abgestimmt wird, wird der entsprechende Wert ausgedruckt. Im anderen Fall die “jedoch“außerBlock zeigt die definierte Nachricht an:

Methode 3: String to Enum Conversion in Python mit der Enum -Klasse -Methode

Die Enum -Klasse bietet auch eine Methode zum Konvertieren einer String in Enum in Python. Um es zu verwenden, lesen Sie die angegebene Syntax.

Syntax

Aufreum...

Beispiel

Geben Sie den erforderlichen Enum -Konstantwert in einer Zeichenfolge an:

fruit_str = 6

Geben Sie dann die erstellte Zeichenfolge mit der Enum Class -Methode Fruit () über und drucken Sie die Ausgabe auf der Konsole:

versuchen:
fruit_enum = frucht (fruit_str)
print (fruit_enum)
außer AttributeError:
print (f'Error: fruit_str ist nicht in der Liste ')

Es kann beobachtet werden, dass der aufzählige Mitgliedsname abgerufen wurde.

Abschluss

Um die Saite in Python umzuwandeln, die “, die“getattr ()"Funktion", "__mitglieder”Attribut oder die Enum -Klassenmethode werden verwendet. Alle diese Ansätze holen die aufzählige Konstante der angegebenen Klasse ab. Darüber hinaus hilft der Versuch in Kombination mit den angegebenen Ansätzen auch bei der Erreichung der gewünschten Funktionalität. Dieser Beitrag deckte verschiedene Methoden für die String -to -Enum -Konvertierung in Python ab.