Middle
¿Se pasan los parámetros en Python por valor o por referencia?
sobes.tech AI
Respuesta de la IA
En Python, los parámetros se pasan por referencia al objeto (pass-by-object-reference). Esto significa que la función recibe una referencia al objeto, no una copia del valor. Sin embargo, el comportamiento depende de la mutabilidad del objeto:
- Para objetos mutables (por ejemplo, listas, diccionarios), los cambios dentro de la función se reflejan en el objeto original.
- Para objetos inmutables (por ejemplo, números, cadenas, tuplas), cualquier intento de modificar el objeto dentro de la función crea un nuevo objeto, dejando el original sin cambios.
Ejemplo:
def modify_list(lst):
lst.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 4]
def modify_int(x):
x += 1
num = 5
modify_int(num)
print(num) # 5
Por lo tanto, se puede decir que los parámetros se pasan por referencia, pero el comportamiento es similar a pasar por valor para objetos inmutables.