python:__getitem__方法詳解
阿新 • • 發佈:2018-11-14
__getitem__(self,key):
這個方法返回與指定鍵想關聯的值。對序列來說,鍵應該是0~n-1的整數,其中n為序列的長度。對對映來說,鍵可以是任何型別。
class Tag:
def __init__(self,id):
self.id=id
def __getitem__(self, item):
print('這個方法被呼叫')
return self.id
a=Tag('This is id')
print(a.id)
print(a['python'])
輸出:
This is id
這個方法被呼叫
This is id
這驗證了上邊的話,如果是對映的話,鍵可以是任意型別,序列的n無論是多少,__getitem__總是會被呼叫
但是事實上這樣是不規範的,我們應該這樣做
class Tag:
def __init__(self):
self.change={'python':'This is python'}
def __getitem__(self, item):
print('這個方法被呼叫')
return self.change[item]
a=Tag()
print(a['python'])