Funciones en Python (2024)
6. Pasaje por Valor
Pasaje de variables a funciones por valor
Veamos el siguiente ejemplo:
def duplicar(n):
n=n*2 #duplico el valor de n, que es una copia de la n global.
print("el id de n dentro de la función: ", id(n))
print(n) #NO regreso NADA!
#la n local vale 4!
#main script o código principal
n=2 #n global vale 2
duplicar(n)
print("el id de n fuera de la función: ", id(n))
print(n) #la n de main, global vale 2!!
La salida de este scritp será:
el id de n dentro de la función: 11753992
4
el id de n fuera de la función: 11753928
2
Vemos que los id son distintos => son distintas variables, esto concuerda
con lo que dijimos,la variable LOCAL es una copia.
Al "pasarle la variable x" como argumento, en realidad le estoy pasando una copia del valor que contiene esta variable. Por lo tanto, dentro de la función se comporta como una variable local y cualquier modificación que se le haga no tiene efecto sobre la variable x.
Nota: Vemos que NO es buena idea llamar a las variables globales y locales por el mismo nombre, puede llevar a confusión.