Junior
¿Cómo se pasan los argumentos a una función: por referencia o por valor?
sobes.tech AI
Respuesta de la IA
En Python, los argumentos no se pasan exactamente por referencia ni exactamente por valor, sino mediante un mecanismo que a menudo se llama "paso por referencia de objeto" o "paso por compartición".
Esto significa lo siguiente:
- Al pasar un argumento a una función, se pasa una referencia al objeto.
- Si el objeto es mutable (por ejemplo, una lista, un diccionario), los cambios dentro de la función serán visibles fuera de ella.
- Si el objeto es inmutable (por ejemplo, un número, una cadena, una tupla), al intentar modificarlo dentro de la función se creará un nuevo objeto, y el objeto original fuera de la función permanecerá sin cambios.
Objetos mutables:
# Objeto mutable (lista)
def modify_list(items):
items.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
# my_list ahora es [1, 2, 3, 4]
Objetos inmutables:
# Objeto inmutable (número)
def modify_number(num):
num = num + 1
my_number = 5
modify_number(my_number)
# my_number sigue siendo 5