-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaula151.py
39 lines (33 loc) · 1.35 KB
/
aula151.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Enum -> Enumerações
# Enumerações na programação, são usadas em ocasiões onde temos
# um determinado número de coisas para escolher.
# Enums têm membros e seus valores são constantes.
# Enums em python:
# - são um conjunto de nomes simbólicos (membros) ligados a valores únicos
# - podem ser iterados para retornar seus membros canônicos na ordem de
# definição
# enum.Enum é a superclasse para suas enumerações. Mas também pode ser usada
# diretamente (mesmo assim, Enums não são classes normais em Python).
# Você poderá usar seu Enum com type annotations, com isinstance e
# outras coisas relacionadas com tipo.
# Para obter os dados:
# membro = Classe(valor), Classe['chave']
# chave = Classe.chave.name
# valor = Classe.chave.value
import enum
#Direcoes = enum.Enum('Direções', ['ESQUERDA', 'DIREITA'])
class Direcoes(enum.Enum):
ESQUERDA = enum.auto()
DIREITA = enum.auto()
NORTE = enum.auto()
SUL = enum.auto()
print(Direcoes(1), Direcoes['ESQUERDA'], Direcoes.ESQUERDA)
print(Direcoes(1).name, Direcoes['ESQUERDA'].value)
def mover(direcao: Direcoes):
if not isinstance(direcao, Direcoes):
raise ValueError('Direção Não Encontrada.')
print(f'Movendo para {direcao.name} ({direcao.value})')
mover(Direcoes.ESQUERDA)
mover(Direcoes.DIREITA)
mover(Direcoes.NORTE)
mover(Direcoes.SUL)