类的专有方法(__len__)

# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#http://www.imooc.com/code/6252


#类的专有方法(__len__)
#如果一个类表现得像一个list,要获得有多少个元素,就得用len();要让len()函数正常工作,类必须提供一个特殊的方法__len__(),才能返回元素的个数




#案例01
class Fib():
    def __init__(self, num):
        a, b, L = 0, 1, []
        for i in range(num):
            L.append(a)
            a, b = b, a+b
        self.numbers = L

    def __str__(self):
        return str(self.numbers)

    def __len__(self):
        return len(self.numbers)

f = Fib(10)
print f
print len(f)


#案例02
class Students():
    def __init__(self, *args):
        self.names = args
    def __len__(self):
        return len(self.names)

ss = Students('Bob', 'Alice', 'Tim')
print len(ss)

 

posted @ 2015-10-13 10:30  Xiao|Deng  阅读(388)  评论(0编辑  收藏  举报