1
+ ### ENUMERACIONES
2
+ '''
3
+ Las enumeraciones (enums) son un conjunto de nombres simbólicos (miembros) asignados a valores únicos.
4
+ En Python, el módulo estándar enum permite trabajar con enumeraciones de manera sencilla,
5
+ facilitando la organización y manipulación de conjuntos de valores relacionados.
6
+ '''
7
+ from enum import Enum
8
+
9
+ class Week (Enum ):
10
+ LUNES = 1
11
+ MARTES = 2
12
+ MIERCOLES = 3
13
+ JUEVES = 4
14
+ VIERNES = 5
15
+ SABADO = 6
16
+ DOMINGO = 7
17
+
18
+ print (Week .LUNES .name )
19
+ print (Week .LUNES .value )
20
+
21
+ def get_week_day (number : int = 1 ):
22
+ if number < 1 or number > 7 :
23
+ print ("Error!!!" )
24
+ return None
25
+
26
+ return Week (number ).name
27
+
28
+ print (get_week_day (2 ))
29
+ print (get_week_day (4 ))
30
+ print (get_week_day (7 ))
31
+
32
+ ### EJERCICIO EXTRA
33
+
34
+ class Estado (Enum ):
35
+ PENDIENTE = 1
36
+ ENVIADO = 2
37
+ ENTREGADO = 3
38
+ CANCELADO = 4
39
+
40
+ class Pedido :
41
+ def __init__ (self , id_pedido , estado ):
42
+ self .__id_pedido = id_pedido
43
+ self .__estado = estado
44
+
45
+ @property
46
+ def id_pedido (self ):
47
+ return self .__id_pedido
48
+
49
+ @id_pedido .setter
50
+ def id_pedido (self , id : int ):
51
+ self .__id_pedido = id
52
+
53
+ @property
54
+ def estado (self ):
55
+ return self .__estado
56
+
57
+ def cambiar_estado (self , estado : Estado ):
58
+ if self .__estado .value == 1 and estado .value == 3 :
59
+ print ("Error: El estado no puede cambiar de pendiente a entregado hasta que no se haya enviado" )
60
+ elif self .__estado .value == 3 and estado .value == 4 :
61
+ print ("Error: El estado no puede cambiar de entregado a cancelado" )
62
+ else :
63
+ print (f"Cambiando el pedido { self .__id_pedido } de { self .__estado .name } a { estado .name } " )
64
+ self .__estado = estado
65
+
66
+ p1 = Pedido (1 , Estado .PENDIENTE )
67
+ p2 = Pedido (2 , Estado .ENVIADO )
68
+ p3 = Pedido (3 , Estado .ENTREGADO )
69
+
70
+ print (f"Id: { p1 .id_pedido } , Estado: { p1 .estado .name } " )
71
+ print (f"Id: { p2 .id_pedido } , Estado: { p2 .estado .name } " )
72
+ print (f"Id: { p3 .id_pedido } , Estado: { p3 .estado .name } " )
73
+
74
+ # P1 pasa a estado enviado
75
+ p1 .cambiar_estado (Estado .ENVIADO )
76
+ p3 .cambiar_estado (Estado .CANCELADO ) # Este cambio no se puede realizar
77
+ print (p3 .estado .name )
78
+
79
+ ### FIN EJERCICIO EXTRA
80
+
81
+
82
+ ### FIN ENUMERACIONES
0 commit comments