A conversão da string em enum em Python melhora a legibilidade do código, pois a enum oferece uma maneira consistente de especificar um conjunto de valores relacionados. Essa conversão também facilita o código do código. Também ajuda a evitar erros ou erros de digitação. Mais especificamente, os valores constantes enumerados são definidos no tempo de compilação, mas não podem ser alterados durante a execução.
Este blog discutirá as seguintes abordagens:
Método 1: String to Enum Conversão no python usando a função "getAttr ()"
Em Python, “getattr ()”É uma função python integrada que busca o valor de um atributo de objeto. Esta função aceita dois argumentos. O primeiro argumento representa o objeto selecionado, e o segundo refere -se ao atributo cujo valor você deseja obter. Mais especificamente, essa função também pode converter uma string para enum.
Sintaxe
getattr (objeto, att_name)Aqui o "getattr ()”A função recupera o valor do atributo especificado“att_name"Do relevante"Objeto”.
Exemplo
Agora, vamos conferir o método para converter uma string para enum usar o “getattr ()”Função. Para fazer isso, primeiro importe o “enum”Módulo da classe Enum:
de enum importar enumEm seguida, defina uma classe enum chamada “Fruta”, Adicione as constantes enumeradas e especifique os valores inteiros correspondentes:
Frutas de classe (enum):Crie uma string e armazene o nome constante enumerado nele:
fruit_str = 'maçã'Invoque o “getattr ()”Funcionar e passar o“Fruta”Enum objeto e o recém -criado como o nome do atributo:
fruit_enum = getattr (frutas, frutas_str)Imprima o valor resultante no console:
Imprimir (frutas_enum)Pode ser observado a partir da saída que “Fruta.Maçã”É uma constante enumerada:
No entanto, um “AtribuitError”A exceção será acionada no caso de passar o nome do atributo que não é justificado como o valor constante da enum:
fruit_str = 'pêssego'Para lidar com a exceção mencionada, adicione o bloco Try-Except da seguinte maneira:
tentar:Adicione o bloco de código com “tentar”Isso precisa ser executado quando a constante enum foi encontrada. Para o outro caso, especifique as respectivas declarações no “exceto" bloquear:
Método 2: String to Enum Conversão em python usando o atributo “__members__”
A classe Enum Python oferece um atributo chamado “__membros__”Isso é criado automaticamente. Este atributo é mais como um dicionário que mapeia o membro enumerado para os valores correspondentes.
Sintaxe
Objeto.__members __ [att_name]Aqui o "__membros__ ”O atributo recebe o valor do atributo especificado“att_name"Da enumeração especificada"Objeto”.
Exemplo
Para usar o “__membros__”O atributo para uma string para enumia a conversão, primeiro, crie uma string cujo valor é o mesmo que a constante de enum necessária:
fruit_str = 'manga'Em seguida, especifique o seguinte código no bloco Try-Except do seu código:
tentar:A primeira declaração adicionada ao bloco de tentativas tenta acessar o “frutas_strMembro da aula de enum em frutas com o “__membros__”Atributo. Se a string especificada for combinada com qualquer uma das constantes enum, o valor correspondente será impresso. No entanto, no outro caso, o “exceto”O bloco exibe a mensagem definida:
Método 3: String to Enum Conversão em Python usando o método da classe Enum
A classe Enum também fornece um método para converter uma string para enum em python. Para utilizá -lo, consulte a sintaxe declarada.
Sintaxe
Enum.Exemplo
Especifique o valor constante da enum necessária em uma string:
fruit_str = 6Em seguida, passe a string criada usando o método da classe Enum Fruit () e imprima a saída no console:
tentar:Pode -se observar que o nome do membro enumerado foi buscado.
Conclusão
Para converter a string para enum em python, o “getattr ()”Função,“__membros__”Atributo, ou o método da classe Enum são usados. Todas essas abordagens buscam a constante enumerada da classe especificada. Além disso, em combinação com as abordagens declaradas, o exceto também ajuda a alcançar a funcionalidade desejada. Esta posta.