A classe Enum
Defina grupos de constantes nomeadas
A classe Enum é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
Por Que Usar Enumerações?
Uma enumeração é um conjunto de valores constantes nomeados que pertencem ao mesmo grupo. Em vez de espalhar cadeias de caracteres ou números mágicos pelo código, atribui um nome claro a cada valor.
- Código autoexplicativo.
- Proteção contra erros de digitação.
- Um conjunto fixo e conhecido de opções.
Definindo uma Enumeração
Crie uma subclasse de Enum e liste os membros como NAME = value. Por convenção, os nomes dos membros são escritos em maiúsculas.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(Color.RED)Nome e Valor
Cada membro de uma enumeração tem um .name (o identificador) e um .value (o valor atribuído).
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
c = Color.GREEN
print(c.name)
print(c.value)Os Membros São Singletões
Cada membro é um objeto singleton exclusivo. Compare os membros com is ou ==; o mesmo membro é sempre exatamente o mesmo objeto.
from enum import Enum
class Color(Enum):
RED = 1
BLUE = 2
print(Color.RED is Color.RED)
print(Color.RED == Color.BLUE)Consulta por Valor
Chame a classe da enumeração com um valor para obter o membro correspondente. Um valor desconhecido gera ValueError.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
print(Color(2))
try:
Color(99)
except ValueError as e:
print('Bad value:', e)Consulta por Nome
Use o acesso entre colchetes com a cadeia de caracteres do nome do membro para consultar um membro pelo nome. Isso é útil ao ler nomes de uma configuração ou da entrada do usuário.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
print(Color['GREEN'])Percorrendo os Membros
Uma enumeração é iterável. O laço retorna cada membro na ordem de definição, o que é ótimo para criar menus ou validar opções.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
for c in Color:
print(c.name, c.value)Valores de Texto
Os valores de uma enumeração não se limitam a inteiros. Cadeias de caracteres são comuns, especialmente para valores que serão serializados ou armazenados.
from enum import Enum
class Status(Enum):
ACTIVE = 'active'
PAUSED = 'paused'
CLOSED = 'closed'
print(Status.PAUSED.value)
print(Status('closed'))Atribuição Automática de Valores
Quando os números em si não importam, use auto() para atribuir valores automaticamente, começando em 1 e aumentando sucessivamente.
from enum import Enum, auto
class Direction(Enum):
NORTH = auto()
SOUTH = auto()
EAST = auto()
WEST = auto()
for d in Direction:
print(d.name, d.value)Enumerações em Funções
Usar enumerações como parâmetros de funções deixa a intenção clara e protege contra entradas inválidas. Compare os membros diretamente dentro da lógica.
from enum import Enum
class Light(Enum):
RED = 1
YELLOW = 2
GREEN = 3
def can_go(light):
return light is Light.GREEN
print(can_go(Light.GREEN))
print(can_go(Light.RED))Membros em um Dicionário
Os membros de uma enumeração são hasháveis, portanto funcionam como chaves de dicionários. Essa é uma forma clara de associar dados a cada constante nomeada.
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
hex_codes = {Color.RED: '#ff0000', Color.GREEN: '#00ff00'}
print(hex_codes[Color.RED])Verificação Rápida
Como comparar corretamente dois membros de uma enumeração quanto à identidade?
Recapitulação
Aprendeu a definir grupos de constantes nomeadas com Enum.
- Os membros têm
.namee.value. - Consulte por valor com
Color(v)e por nome comColor['NAME']. - As enumerações são iteráveis e os membros são singletões.
- Use
auto()quando os valores exatos não importarem.
Perguntas Frequentes
A aula “A classe Enum” é grátis?
Sim — o texto completo de “A classe Enum” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “A classe Enum”?
Defina grupos de constantes nomeadas Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “A classe Enum”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.