1. 程式人生 > 實用技巧 >python中"__getitem__"詳解

python中"__getitem__"詳解

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