Si ejecutamos estas sentencias de asignación:
1: a = "banana"
2: b = "banana"
Esta claro que a y b apuntan ambos a cadenas con las letras "banana". Pero no podemos saber si están apuntando a la misma cadena.
Hay dos posibles estados:
En un caso, a y b se refieren a dos cosas diferentes que tienen el mismo valor.
En el segundo caso, se refieren a la misma cosa. Estas “cosas” tienen nombres; se les denomina objetos. Un objeto es una cosa a la que se puede referir una variable.
Cada objeto tiene un identificador único, que podemos obtener por medio de la función id. Imprimiendo los identificadores de a y b podemos saber si apuntan al mismo objeto.
1: >>> id(a) 2: 135044008 3: >>> id(b) 4: 135044008
Curiosamente, las listas se comportan de otra manera. Cuando crea dos listas, obtiene dos objetos:
1: >>> a = [1, 2, 3] 2: >>> b = [1, 2, 3] 3: >>> id(a) 4: 135045528 5: >>> id(b) 6: 135041704De manera que el diagrama de estado sería tal como este:
a y b tienen el mismo valor, pero no se refieren al mismo objeto.
Comentarios
Publicar un comentario