File tree 1 file changed +85
-0
lines changed
Roadmap/19 - ENUMERACIONES/python
1 file changed +85
-0
lines changed Original file line number Diff line number Diff line change
1
+ from enum import Enum
2
+
3
+ class Calendar (Enum ):
4
+ lunes = 1
5
+ martes = 2
6
+ miercoles = 3
7
+ jueves = 4
8
+ viernes = 5
9
+ sabado = 6
10
+ domingo = 7
11
+
12
+ def get_day_by_number (num ):
13
+ return Calendar (num )
14
+
15
+ day = Calendar .get_day_by_number (2 )
16
+ print (day .name )
17
+
18
+ # ---- DIFICULTAD EXTRA ----
19
+
20
+ class Estados (Enum ):
21
+ PENDIENTE = 0
22
+ ENVIADO = 1
23
+ ENTREGADO = 2
24
+ CANCELADO = - 1
25
+
26
+ class Pedidos :
27
+ def __str__ (self ):
28
+ return f"Pedidos id={ self .id } , estado={ self .estado } "
29
+
30
+ def __init__ (self , id ):
31
+ self .id = id
32
+ self .estado = Estados (0 )
33
+ self .anterior_estado = None
34
+
35
+ def enviar (self ):
36
+ if not self .estado == Estados .PENDIENTE :
37
+ raise Exception (f"El pedido no se puede enviar con estado: { self .estado } " )
38
+
39
+ self .estado = Estados (1 )
40
+ self .anterior_estado = Estados (0 )
41
+
42
+
43
+ def cancelar (self ):
44
+ if self .estado == Estados .ENTREGADO :
45
+ raise Exception (f"El pedido no se puede cancelar con estado: { self .estado } " )
46
+
47
+ self .estado = Estados (- 1 )
48
+
49
+ def entregado (self ):
50
+ if not self .estado == Estados .ENVIADO :
51
+ raise Exception (f"El pedido no se puede entregar con estado: { self .estado } " )
52
+
53
+ self .estado = Estados (2 )
54
+ self .anterior_estado = Estados (1 )
55
+
56
+ pedido1 = Pedidos (1 )
57
+ print (pedido1 )
58
+ pedido1 .cancelar ()
59
+ print (pedido1 )
60
+ print ()
61
+
62
+ pedido2 = Pedidos (2 )
63
+ print (pedido2 )
64
+ pedido2 .enviar ()
65
+ print (pedido2 )
66
+ pedido2 .entregado ()
67
+ print (pedido2 )
68
+ try :
69
+ pedido2 .cancelar ()
70
+ except :
71
+ pass
72
+ print (pedido2 )
73
+ print ()
74
+
75
+ pedido3 = Pedidos (3 )
76
+ print (pedido3 )
77
+ pedido3 .enviar ()
78
+ print (pedido3 )
79
+ pedido3 .cancelar ()
80
+ print (pedido3 )
81
+ try :
82
+ pedido3 .entregado ()
83
+ except :
84
+ pass
85
+ print (pedido3 )
You can’t perform that action at this time.
0 commit comments