Python: la funzione id() e gli oggetti

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.

Torna su