关于用print时,实现特殊方法时的返回值为List或者str(List) 分别啥情况使用
注意看注释和汉字
这是最后一节__call__的答案
class Fib(object):
def __call__(self, num):
a, b, L = 0, 1, []
for n in range(num):
L.append(a)
a, b = b, a + b
return str(L) # 用L也行,不加str也行
f = Fib()
print f(10)
这代码是__len__这节的
class Fib(object):
def __init__(self, num):
a, b, L = 0, 1, []
for n in range(num):
L.append(a)
a, b = b, a + b
self.numbers = L
def __str__(self):
return str(self.numbers) #这里加了str,不加出错
__repr__ = __str__
def __len__(self):
return len(self.numbers)
f = Fib(10)
print f
print len(f)