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 ()”
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_name”Obiekt".
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 EnumNastępnie zdefiniuj klasę enum o nazwie „Owoc”, Dodaj stałe wyliczone i określ odpowiednie wartości liczb całkowitych:
Owoce klasy (enum):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ć: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ć: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 = 6Następnie przejdź utworzony ciąg przy użyciu metody klasy enum Fruit () i wydrukuj wyjście na konsoli:
próbować: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.