私は、キーが1-1のときに単純なマッピングクラスを作成しようとしています。 key1:key2, key2:key1
。私はクラスが私が入力した値と等しいかどうかをチェックするときにエラーに遭遇しています、私はTrue
を得ているはずですが、私はFalse
を得続けます。ディクテーションクラスの "マッピング"エラー
>>> m=Mapping()
>>> m[2]=3
>>> m
Mapping({2: 3, 3: 2})
>>> m==Mapping({2: 3, 3: 2})
False
私が間違っていることがわかりません。私のコードは以下のとおりです。ご了承ください。
class Mapping():
def __init__(self, dic={}):
self.Dict = dict(dic)
def __repr__(self):
return "Mapping({})".format(self.Dict)
def __getitem__(self, loc=0):
return self.Dict[loc]
def pop(self, popn=0):
popm = self.Dict[popn]
self.Dict.pop(popn, None)
self.Dict.pop(popm, None)
def __setitem__(self, x, y):
self.Dict[x]=y
self.Dict[y]=x
'__eq__'の実装は役に立ちます... –
私は基本的なdictの機能に違いは見られません。 '__eq__'の魔方法を定義すると助けになりますが、なぜ辞書に基づいて辞書を再実装しようとしていますか? –
@NikolayProkopyev彼のdictは自動的に逆マッピングを提供します。 – Max