¿Mutable o Inmutable?
En Python, los tipos de datos se dividen en dos categorías: mutables e inmutables.
- Los tipos mutables pueden modificarse después de ser creados;
- Los tipos inmutables no pueden modificarse después de su creación — cualquier "cambio" crea un objeto completamente nuevo en la memoria.
Tipos Inmutables
Tipos como int, float, str y tuple son inmutables. Esto significa que si "modificas" una variable que contiene uno de estos tipos, Python en realidad crea un nuevo objeto internamente.
# Assign an integer value to var1 var1 = 40 print("var1 =", var1) # Output: var1 = 40 print("ID of var1:", id(var1)) # Shows the memory ID of the value 40 # Reassign a new integer value to var1 var1 = 50 print("var1 =", var1) # Output: var1 = 50 print("New ID of var1:", id(var1)) # Shows a different ID — it's a new object in memory
Aunque estamos reutilizando el mismo nombre de variable (var1
), la función id()
muestra que la variable apunta a un objeto completamente nuevo después de la reasignación. Esto se debe a que los enteros son inmutables — no pueden modificarse en el lugar.
Tipos mutables
Por otro lado, tipos como list
y dict
son mutables. Pueden modificarse sin crear nuevos objetos.
Swipe to start coding
Imagina que estás gestionando el presupuesto de un pequeño proyecto. Inicialmente, tu presupuesto disponible es de $100. Más tarde, recibes una financiación adicional de $50.
Tu tarea es:
- Imprimir el valor inicial de
project_budget
y su ID de memoria utilizando la funciónid()
. - Actualizar el valor de
project_budget
para reflejar el monto total. - Imprimir el valor actualizado y su nuevo ID.
Esto te ayudará a observar cómo se comportan los tipos inmutables como int
cuando se reasignan.
Una vez que completes esta tarea, haz clic en el botón debajo del código para comprobar tu solución.
Solución
¡Gracias por tus comentarios!