Skip to content

Commit 1a9f9d6

Browse files
committed
#5 - Python
1 parent 69c6126 commit 1a9f9d6

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
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

Comments
 (0)