课程
/后端开发
/Python
/python进阶
。。。。不知道
2015-06-26
源自:python进阶 6-9
正在回答
class Fib(object): def __init__(self): # useless,to be unified only pass def __call__(self,num): L=[0,1] i=2 while i< num: L.append(L[i-2]+L[i-1]) i+=1 return L f = Fib() print f(10)
码农的自我修养
第九行:def __call__(self):
第十一行:f = Fib(10)
第十二行:print f()
是因为你在class里面定义了num但是你f = Fib()没有传入参数,class里的num无法取值,所以抛出错误。你只需要将f = Fib()改为f = Fib(10)就好了。可能你会问你在print函数里赋值了print f(10)。但是由于程序从上往下读,当读到f = Fib()就出错了。读不到print f(10)。
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计