私はdictをラップするカスタムクラスを作成しています。したがって、getitemを実装したいと思います。また、この辞書ではタプルをキーとして使用します。しかし、getitemにタプルを渡そうとすると、PythonはKeyErrorを投げます。__getitem __()のパラメータとしてタプルを使用する方法?
コード:
Class Board(object):
def __getitem__(self, key):
print "type in call: " + type(key)
return self.board[key]
# in main somewhere
board = Board()
print "type before call: " + type((1, 2))
if (1, 2) in board:
print "It's there!"
Ouptut:
type before call: <type 'tuple'>
type in call: <type 'int'>
## traceback stuff ##
KeyError: 0
ん会マッピングタイプを継承する必要があり、私はのGetItemにそれを渡したときに、それはintに私のタプルをキャストしているように見えますPythonが幸せになるためには?また、なぜPythonは最初にこのキャストを試みますか?
メンバシップテストを実装しようとしていますが、[クラス内のメソッドの再宣言](http://stackoverflow.com/q/9428419/1132524)を見てください。 –