La conversión de la cadena a enum en Python mejora la legibilidad del código ya que enum ofrece una forma consistente para especificar un conjunto de valores relacionados. Esta conversión también hace que el código sea más fácil de mantener. También ayuda a evitar errores o errores tipográficos. Más específicamente, los valores constantes enumerados se definen en el tiempo de compilación, pero no se pueden cambiar durante la ejecución.
Este blog discutirá los siguientes enfoques:
Método 1: Cadena a la conversión de enum en Python usando la función "getattr ()"
En Python, "getATTR ()"Es una función de pitón incorporada que obtiene el valor de un atributo de objeto. Esta función acepta dos argumentos. El primer argumento representa el objeto seleccionado, y el segundo se refiere al atributo cuyo valor desea obtener. Más específicamente, esta función también puede convertir una cadena a enum.
Sintaxis
getATTR (objeto, attr_name)Aquí el "getATTR ()"La función recupera el valor del atributo especificado"Attr_Name"De lo relevante"Objeto".
Ejemplo
Ahora, verifiquemos el método para convertir una cadena a enum utilizando el "getATTR ()" función. Para hacerlo, primero importe el "enumer"Módulo de la clase enum:
de enum import enumEntonces, defina una clase de enum llamada "Fruta", Agregue las constantes enumeradas y especifique los valores enteros correspondientes:
clase de fruta (enum):Cree una cadena y almacene el nombre constante enumerado en él:
fruit_str = 'manzana'Invoca el "getATTR ()"Función y pasar el"Fruta"Enum Object y el recién creado como el nombre del atributo:
fruit_enum = getAttr (fruit, fruit_str)Imprima el valor resultante en la consola:
Imprimir (fruit_enum)Se puede observar desde la salida que el "Fruta.Manzana"Es una constante enumerada:
Sin embargo, un "Atributo"La excepción se activará en caso de pasar el nombre del atributo que no está justificado como el valor constante de enum:
fruit_str = 'Peach'Para manejar la excepción mencionada, agregue el bloque Try-Except de la siguiente manera:
intentar:Agregue el bloque de código con "intentar"Eso debe ejecutarse cuando se haya encontrado la constante enum. Para el otro caso, especifique las declaraciones respectivas en el "excepto" bloquear:
Método 2: String to Enum Conversion en Python usando el atributo "__members__"
La clase Enum Python ofrece un atributo llamado "__memas__"Eso se crea automáticamente. Este atributo se parece más a un diccionario que asigna al miembro enumerado a los valores correspondientes.
Sintaxis
Objeto.__Members __ [Attr_name]Aquí el "__memas__ "El atributo obtiene el valor del atributo especificado"Attr_Name"Del enum especificado"Objeto".
Ejemplo
Usar el "__memas__"Atributo para una conversión de cadena a enum, en primer lugar, cree una cadena cuyo valor sea el mismo que el enum constante requerido:
fruit_str = 'mango'Luego, especifique el siguiente código en el bloque Try-Except de su código:
intentar:La primera declaración agregada en el bloque de try intenta acceder al "Fruit_str"Miembro de la clase Fruit Enum con el"__memas__" atributo. Si la cadena especificada coincide con cualquiera de las constantes enum, el valor correspondiente se imprimirá. Sin embargo, en el otro caso, el "exceptoEl bloque muestra el mensaje definido:
Método 3: Cadena a la conversión de enum en Python utilizando el método de clase Enum
La clase enum también proporciona un método para convertir una cadena a enum en Python. Para utilizarlo, consulte la sintaxis establecida.
Sintaxis
Enumer.Ejemplo
Especifique el valor constante de enum requerido en una cadena:
fruit_str = 6Luego, pase la cadena creada usando el método de clase Enum () e imprima la salida en la consola:
intentar:Se puede observar que el nombre del miembro enumerado ha sido obtenido.
Conclusión
Para convertir la cadena a enum en Python, el "getATTR ()" función, "__memas__Atributo "o se utilizan el método de clase enum. Todos estos enfoques obtienen la constante enumerada de la clase especificada. Además, en combinación con los enfoques establecidos, el try-Except también ayuda a lograr la funcionalidad deseada. Esta publicación cubrió diferentes métodos para la conversión de cadena a enum en Python.