Я пишу пользовательский класс, который оборачивает диктат.Поэтому я хочу реализовать для него getitem .Я также буду использовать кортежи в качестве ключей в этой записи.Однако, когда я пытаюсь передать кортеж в getitem, Python выдает KeyError.Похоже, что он переводит мой кортеж в int, когда я передаю его 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!"
Выход:
type before call: <type 'tuple'>
type in call: <type 'int'>
## traceback stuff ##
KeyError: 0
Нужно ли Board наследовать от типа отображения, чтобы Python был счастлив?Кроме того, почему Python пытается сделать это в первую очередь?