Python String to Enum Conversion

Python String to Enum Conversion

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 ()"
  • Método 2: String to Enum Conversion en Python usando el atributo "__members__"
  • Método 3: Cadena a la conversión de enum en Python utilizando el método de clase Enum

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 enum

Entonces, defina una clase de enum llamada "Fruta", Agregue las constantes enumeradas y especifique los valores enteros correspondientes:

clase de fruta (enum):
Apple = 3
Mango = 6
Naranja = 9

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:
fruit_enum = getAttr (fruit, fruit_str)
Imprimir (fruit_enum)
Excepto AttributeerRor:
print (f'error: fruit_str no está en la lista ')

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:
fruit_enum = fruta.__Members __ [fruit_str]
Imprimir (fruit_enum)
Excepto AttributeerRor:
print (f'error: fruit_str no está en la lista ')

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 = 6

Luego, pase la cadena creada usando el método de clase Enum () e imprima la salida en la consola:

intentar:
fruit_enum = fruta (fruit_str)
Imprimir (fruit_enum)
Excepto AttributeerRor:
print (f'error: fruit_str no está en la lista ')

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.