Python: la funzione id() e gli oggetti
In Python la funzione id() non dovrebbe mai essere utilizzata per la verificare l'uguaglianza tra due oggetti.
La funzione id() restituisce una rappresentazione dell'identità dell'oggetto come numero intero, che è sempre diversa anche se due o più istanze di una classe hanno esattamente gli stessi attributi e gli stessi valori per tali attributi. A livello di implementazione CPython, è l'indirizzo dell'oggetto in memoria.
Esempio:
class User:
def __init__(self, name):
self.name = name
user_1 = User('John')
user_2 = User('John')
print(id(user_1))
print(id(user_2))
Otterremo ad esempio:
4479462576
4479462480
Come si può notare, la funzione id() restituisce due valori diversi.