String Python do wyliczenia konwersji

String Python do wyliczenia konwersji

Konwertowanie ciągów na enum w Python poprawia czytelność kodu, ponieważ enum oferuje spójny sposób określenia zestawu powiązanych wartości. Ta konwersja ułatwia utrzymanie kodu. Pomaga również w unikaniu błędów lub literówek. Mówiąc dokładniej, wyliczone stałe wartości są zdefiniowane w czasie kompilacji, ale nie można ich zmienić podczas wykonywania.

Ten blog omówi następujące podejścia:

  • Metoda 1: ciąg do wyliczenia konwersji w Pythonie za pomocą funkcji „getAttr ()”
  • Metoda 2: ciąg do wyliczenia konwersji w Pythonie za pomocą atrybutu „__members__”
  • Metoda 3: Ciąg do wyliczenia konwersji w Pythonie za pomocą metody klasy enum

Metoda 1: ciąg do wyliczenia konwersji w Pythonie za pomocą funkcji „getAttr ()”

W Python „getAttr ()”To wbudowana funkcja Pythona, która pobiera wartość atrybutu obiektu. Ta funkcja akceptuje dwa argumenty. Pierwszy argument reprezentuje wybrany obiekt, a drugi odnosi się do atrybutu, którego wartość chcesz uzyskać. Mówiąc dokładniej, ta funkcja może również przekonwertować ciąg na wyliczenie.

Składnia

getAttr (obiekt, attr_name)

Tutaj "getAttr ()”Funkcja pobiera wartość określonego atrybutu„attr_nameObiekt".

Przykład

Teraz sprawdźmy metodę konwersji ciągu w celu wyliczenia za pomocą „getAttr ()”Funkcja. Aby to zrobić, najpierw zaimportuj „enum„Moduł z klasy enum:

Od Enum Import Enum

Następnie zdefiniuj klasę enum o nazwie „Owoc”, Dodaj stałe wyliczone i określ odpowiednie wartości liczb całkowitych:

Owoce klasy (enum):
Apple = 3
Mango = 6
Orange = 9

Utwórz ciąg i przechowuj w nim wyliczoną stałą nazwę:

Fruit_str = „Apple”

Wywołać „getAttr ()”Funkcja i przekaz„Owoc„Enum Obiekt i nowo utworzony jako nazwa atrybutu:

Fruit_enum = getAttr (owoc, owoc_str)

Wydrukuj wynikową wartość na konsoli:

Drukuj (Fruit_enum)

Z wyjścia można zaobserwować, że „Owoc.Jabłko”Jest stałą wyliczoną:

Jednak „AtrybuteError„Wyjątek zostanie uruchomiony w przypadku przekazania nazwy atrybutu, który nie jest uzasadniony jako stała wartość enum:

Fruit_str = „brzoskwinia”

Aby obsłużyć wspomniany wyjątek, dodaj blok próba w następujący sposób:

próbować:
Fruit_enum = getAttr (owoc, owoc_str)
Drukuj (Fruit_enum)
z wyjątkiem AttributeError:
print (f'Error: fruit_str nie ma na liście ')

Dodaj blok kodu za pomocą „próbować„To należy wykonać, gdy znaleziono stałą enum. W drugim przypadku określ odpowiednie stwierdzenia w „z wyjątkiem" blok:

Metoda 2: ciąg do wyliczenia konwersji w Pythonie za pomocą atrybutu „__members__”

Klasa enum Python oferuje atrybut o nazwie „__members__”To jest automatycznie tworzone. Ten atrybut przypomina bardziej słownik, który mapuje element wyliczony na odpowiednie wartości.

Składnia

Obiekt.__members __ [attr_name]

Tutaj "__members__ ”Atrybut otrzymuje wartość określonego atrybutu„attr_name”Z określonego enum”Obiekt".

Przykład

Używać „__members__„Atrybut dla ciągnika do wyliczenia konwersji, po pierwsze, utwórz ciąg, którego wartość jest taka sama jak wymagana stała enum:

Fruit_str = „Mango”

Następnie podaj następujący kod w bloku Try-Except swojego kodu:

próbować:
Fruit_enum = owoc.__members __ [Fruit_str]
Drukuj (Fruit_enum)
z wyjątkiem AttributeError:
print (f'Error: fruit_str nie ma na liście ')

Pierwsze stwierdzenie dodane w bloku próbowym próbuje uzyskać dostęp do „Fruit_str„Członek klasy enum z owocami z„__members__" atrybut. Jeśli określony ciąg zostanie dopasowany do dowolnego ze stałych enum, odpowiednia wartość zostanie wydrukowana. Jednak w drugim przypadku „z wyjątkiem”Blok wyświetla zdefiniowany komunikat:

Metoda 3: Ciąg do wyliczenia konwersji w Pythonie za pomocą metody klasy enum

Enum Class zapewnia również metodę konwersji ciągów do wyliczenia w Python. Aby go wykorzystać, sprawdź podaną składnię.

Składnia

Enum...

Przykład

Podaj wymaganą wartość stałą enum w ciągu:

Fruit_str = 6

Następnie przejdź utworzony ciąg przy użyciu metody klasy enum Fruit () i wydrukuj wyjście na konsoli:

próbować:
Fruit_enum = owoce (owoc_str)
Drukuj (Fruit_enum)
z wyjątkiem AttributeError:
print (f'Error: fruit_str nie ma na liście ')

Można zaobserwować, że wyliczona nazwa członka została pobrana.

Wniosek

Aby przekonwertować ciąg na wyliczenie w Python, „getAttr ()„Funkcja”__members__”Atrybut lub stosowana jest metoda klasy enum. Wszystkie te podejścia pobierają wyliczoną stałą określonej klasy. Ponadto, w połączeniu z podanymi podejściami, próba zorganizuje również w osiągnięciu pożądanej funkcjonalności. Ten post obejmował różne metody ciągnięcia ciągów do wyliczenia konwersji w Pythonie.