1. Cita
Use id() para ver referencias de variables
El valor de identificación se puede considerar como un alias para una dirección de memoria
Paso de valores de datos de python por referencia
La operación de asignación puede cambiar la referencia de la variable
# Almacenar el dato 10 en la variable a Essence: guardar la dirección de referencia de la memoria donde se encuentra el dato 10 en la variable a a= 10 # Dar la dirección de referencia guardada en la variable a a b b=a # Imprimir las variables a, b en la referencia Almacenado value print(a,b) print(id(a),id(b)) print('-'*10) my_list=[1,2,3] #Dar la dirección de referencia de la lista a la variable my_list1=my_list # Dar la dirección de referencia almacenada en la variable a la nueva variable print(my_list1,my_list) print(id(my_list1),id(my_list)) print('-'*10) my_list.append(4) #Guardar la referencia de 4 en la lista print('-'*10) print(my_list1,id(my_list1)) print(my_list,id(my_list)) ) mi_lista[2 ]=5 print(f'mi_lista[2]: {id(mi_lista[2])}') print(mi_lista,id(mi_lista)) print(mi_lista1,id(mi_lista1)) print() print(' -'* 10)
2. Referencias como parámetros de función
Los parámetros de paso de función se pasan por referencia
mi_lista=[1,2,3] print(id(mi_lista)) print('-'*10) def func1(a): a.append(4) func1(mi_lista) print(mi_lista) print(id(mi_lista) ) print('-'*10) # Solo usar def global func2(): my_list.append(5) func2() print(my_list) print(id(my_list)) print(' -'*10) def func3() : global my_list # Modificar el valor de la variable global my_list=[1,2,3] func3() print(my_list) print(id(my_list)) print('-'*10) def func4(a): # For +=, la extensión similar a una lista no cambiará la dirección de referencia de la variable a+=a # print(a) b=10 # b es un tipo inmutable func4(b) imprimir(b) func4(mi_lista) print(mi_lista) print('-'*10)