今天在學習為深度學習數據預處理的時候用了一下“__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'
