String python para enumes

String python para enumes

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 ()"
  • Método 2: String to Enum Conversão em python usando o atributo “__members__”
  • Método 3: String to Enum Conversão em Python usando o método da classe Enum

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 enum

Em seguida, defina uma classe enum chamada “Fruta”, Adicione as constantes enumeradas e especifique os valores inteiros correspondentes:

Frutas de classe (enum):
Apple = 3
Manga = 6
Laranja = 9

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:
fruit_enum = getattr (frutas, frutas_str)
Imprimir (frutas_enum)
Exceto AttributeError:
Print (f'error: fruit_str não está na lista ')

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:
fruit_enum = fruta.__members __ [fruit_str]
Imprimir (frutas_enum)
Exceto AttributeError:
Print (f'error: fruit_str não está na lista ')

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

Em seguida, passe a string criada usando o método da classe Enum Fruit () e imprima a saída no console:

tentar:
fruit_enum = frut (frut
Imprimir (frutas_enum)
Exceto AttributeError:
Print (f'error: fruit_str não está na lista ')

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.