Sobes.tech
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.