オブジェクトをキーとして使用していますが、値として数値を使用していますが、以下のエラーが発生しています。どんな助け?辞書にキーとしてオブジェクトを追加する
dictの[A] = 1
:
Traceback (most recent call last):
File "detect_hung_connections.py", line 24, in <module>
dict = {a:1}
TypeError: __hash__() takes exactly 3 arguments (1 given)
マイコードは次のとおりです。
class A:
def __init__(self,a,b):
self.a = a
self.b = b
def __hash__(self,a,b):
return hash(self.a,self.b)
def __eq__(self,other):
return (self.a,self.b) == (other.a,other.b)
dict ={}
a = A("aa","bb")
dict[a] = 1
b = A("aa","bb")
これはまだ2つの引数を渡しています。 'hash'は1つだけです。あなたの答えが私の画面に表示される約3秒前にこれが失敗するようになった。 :-) – Prune
@Pruneかっこを確認してください。これは、単一のタプルを 'hash()'に渡しています。 – ephemient