Sobes.tech
Junior — Middle

Quelles étapes doivent être suivies pour qu'une instance de votre propre classe puisse être utilisée comme clé dans un dictionnaire Python?

sobes.tech IA

Réponse de l'IA

Pour qu'une instance de votre propre classe puisse être utilisée comme clé dans un dictionnaire Python, elle doit être hashable et comparable. Pour cela, il faut implémenter les méthodes __hash__() et __eq__() dans la classe. La méthode __hash__ doit retourner une valeur entière unique pour l'objet, en tenant compte de ses attributs significatifs, et __eq__ doit définir l'égalité entre objets.

Exemple :

class MyKey:
    def __init__(self, id):
        self.id = id

    def __hash__(self):
        return hash(self.id)

    def __eq__(self, other):
        return isinstance(other, MyKey) and self.id == other.id

# Utilisation
my_dict = {}
key1 = MyKey(1)
key2 = MyKey(1)
my_dict[key1] = 'valeur'
print(my_dict[key2])  # Affichera 'valeur', car key1 == key2

Il est important que les objets soient immuables par rapport aux attributs utilisés dans le hachage, sinon le dictionnaire pourrait mal fonctionner.