我在寫一個自定義的類來包裝字典。因此,我想爲它實現getitem。我也將在這個詞典中使用元組作爲鍵。然而,當我嘗試傳遞一個元組來getitem時,Python會拋出一個KeyError。它看起來像它的鑄造我的元組爲int,當我把它傳遞給的GetItem:如何使用元組作爲__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
確實董事會需要從一個映射類型繼承爲了讓Python快樂?另外,爲什麼Python會首先嚐試執行此操作?
您正在嘗試實施成員資格測試,請查看[在課堂上的「重新聲明方法」(http://stackoverflow.com/q/9428419/1132524))。 – 2012-03-11 06:40:37