1. 程式人生 > >python:__getitem__方法詳解

python:__getitem__方法詳解

__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'])