__len__()和__getitem__()函數的應用舉例

__len__()和__getitem__()函數

       關於魔法方法的詳情請參見前文魔法方法:__getitem__()和__len__()

1.__len__()函數:

       如果希望類可以像列表一樣獲取實例的元素個數,需要在其中定義__len__()函數,它返回指定元素的個數。只要正確實現了__len__()方法,就可以用len()函數返回類實例的“長度”,如下所示:

class Students(object):
    def __init__(self, *args):
        self.names = args
    def __len__(self):
        return len(self.names)

s = Students('zhang', 'wang', 'li')
print(len(s))

2.__getitem__()函數:

       如果希望類的實例對象可以以P[key]的形式取值,需要在其中定義了__getitem__()方法,當實例對象做P[key]運算時,就會調用類中的__getitem__()方法,如下所示:

class Students(object):
    def __init__(self, *args):
        self.names = args
    def __getitem__(self, key):
        return “hello world”

s = Students('zhang', 'wang', 'li')
print(s[1])  # 此時會輸出“hello world”,證明s[1]調用了__getitem__()函數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章