1
+ """
2
+ Valor y referencia
3
+ """
4
+
5
+ # Tipos de datos por valor
6
+
7
+ my_int_a = 10
8
+ my_int_b = my_int_a
9
+ # my_int_b = 20
10
+ # my_int_a = 30
11
+ print (my_int_a )
12
+ print (my_int_b )
13
+
14
+ # Tpos de datos por referencia
15
+ # No copian su valor, heredan la posición de memoria.
16
+
17
+ my_list_a = [10 , 20 ]
18
+ my_list_b = my_list_a
19
+ my_list_b .append (30 ) # altera también la lista A
20
+ print (my_list_a )
21
+ print (my_list_b )
22
+
23
+ # Funciones con datos por valor
24
+
25
+ my_int_c = 10
26
+
27
+ def my_int_func (my_int : int ):
28
+ my_int = 20
29
+ print (my_int )
30
+
31
+ my_int_func (my_int_c ) # Vale 20
32
+ print (my_int_c ) # Sigue valiendo 10
33
+
34
+ # Funciones con datos por referencia
35
+
36
+
37
+ def my_list_func (my_list : list ):
38
+ my_list .append (30 )
39
+
40
+ my_list_d = my_list
41
+ my_list_d .append (40 )
42
+
43
+ print (my_list )
44
+ print (my_list_d )
45
+
46
+
47
+ my_list_c = [10 , 20 ]
48
+ my_list_func (my_list_c ) # Agrega el 30
49
+ print (my_list_c ) # Mantiene el cambio de append
50
+
51
+ """
52
+ Extra
53
+ """
54
+
55
+ # Por valor
56
+
57
+ def value (val_a : int , val_b : int ) -> tuple :
58
+ temp = val_a
59
+ val_a = val_b
60
+ val_b = temp
61
+ return val_a , val_b
62
+
63
+ my_int_d = 10
64
+ my_int_e = 20
65
+ my_int_f , my_int_g = value (my_int_d , my_int_e )
66
+
67
+ print (f"{ my_int_d } , { my_int_e } " )
68
+ print (f"{ my_int_f } , { my_int_g } " )
69
+
70
+ # Por referencia
71
+ """
72
+ Preferentemente no utlizar con copias en caminos separados (que les ocurran cosas distintas a las copias)
73
+ porque se puede generar un error alterando la version original de la lista
74
+ """
75
+ def ref (val_a : list , val_b : list ) -> tuple :
76
+ temp = val_a
77
+ temp .append (50 ) # Agrega en ambos/
78
+ val_a = val_b
79
+ val_b = temp
80
+ return val_a , val_b
81
+
82
+ my_list_e = [10 ,20 ]
83
+ my_list_f = [30 ,40 ]
84
+ my_list_g , my_list_h = ref (my_list_e , my_list_f )
85
+ print (f"{ my_list_e } , { my_list_f } " )
86
+ print (f"{ my_list_g } , { my_list_h } " )
0 commit comments