Me pregunto cuál es la forma correcta de convertir (deserializar) una cadena a una clase Enum de Python. Parece que getattr(YourEnumType, str)
hace el trabajo, pero no estoy seguro de si es lo suficientemente seguro.
Solo para ser más específico, me gustaría convertir una 'debug'
cadena en un objeto Enum como este:
class BuildType(Enum):
debug = 200
release = 400
fuente
Build.get('illegal', Build.debug)
?Enum
no viene con un.get()
método, pero puede agregar uno según sea necesario, o simplemente hacer unaEnum
clase base y siempre heredar de eso.Build('debug')
Build('debug')
. El constructor de la clase debe tomar el valor , es decir,200
o400
en este ejemplo. Para pasar el nombre debe usar corchetes, como ya dice la respuesta.