__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__()函数

 

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