python中"__getitem__"詳解
阿新 • • 發佈:2020-12-05
今天在學習為深度學習資料預處理的時候用了一下“__getitem__"方法,發現還挺好用,下面詳細解釋一下。
__getitem__(self,key):
把類中的屬性定義為序列,可以使用__getitem__()函式輸出序列屬性中的某個元素,這個方法返回與指定鍵想關聯的值。對序列來說,鍵應該是0~n-1的整數,其中n為序列的長度。對對映來說,鍵可以是任何型別。
如果在類中定義了__getitem__()方法,那麼它的例項物件(假設為P)就可以以P[key]形式取值,當例項物件做P[key]運算時,就會呼叫類中的__getitem__()方法。當對類的屬性進行下標的操作時,首先會被__getitem__() 攔截,從而執行在__getitem__()方法中設定的操作,如賦值,修改內容,刪除內容等。
class Taget: def __init__(self,id): self.id=id def __getitem__(self, item): print('這個方法被呼叫') return self.id a=Taget('This is id') print(a.id) print(a['python']) >輸出: '這個方法被呼叫' 'This is id'