0Pricing
Python Academy · Aula

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 .name e .value.
  • Consulte por valor com Color(v) e por nome com Color['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.

Todas as aulas deste curso

  1. A classe Enum
  2. IntEnum e Flag
  3. Noções básicas de NamedTuple
  4. typing.NamedTuple
← Voltar para Python Academy