-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaula157.py
52 lines (38 loc) · 1.42 KB
/
aula157.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
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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
# def mover(direcao):
# print(f"Movendo para {direcao}")
# mover("esquerda")
# mover("direita")
# mover("acima")
# mover("abaixo")
class Direcoes(enum.Enum):
ESQUERDA = enum.auto()
DIREITA = enum.auto()
ACIMA = enum.auto()
ABAIXO = 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.ACIMA)
mover(Direcoes.ABAIXO)