Bonjour,
voici un code qui me pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#! /usr/bin/env python3
 
class bidon():
    def __init__(self, a):
        self.a = a
 
    def __eq__(self, oneObject):
        if isinstance(oneObject, bidon):
            return self.a == oneObject.a
 
        return a == oneObject
 
a = bidon('r')
b = bidon('r')
 
print(a == b)
 
oneList = [a, b]
 
print(set(oneList))
Ce code me renvoie l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
True
Traceback (most recent call last):
  File "/Users/.../pitfall/set.py", line 20, in <module>
    print(set(oneList))
TypeError: unhashable type: 'bidon'
Tout vient de ma redéfinition de la méthode spéciale __eq__.

Que faire ?