为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不可以

。。。。不知道

正在回答

3 回答

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)


0 回复 有任何疑惑可以回复我~
#1

码农的自我修养

def __init__(self)的作用是实现 类Fib()中实例f初始化,若有参数x,需添加上 self.x=x,若无参数,可以省略。 def __call__(self,num)作用是调用实例f的某个方法,self就是f,num是形参。
2016-01-08 回复 有任何疑惑可以回复我~

第九行:def __call__(self):

第十一行:f = Fib(10)

第十二行:print f()



0 回复 有任何疑惑可以回复我~

是因为你在class里面定义了num但是你f = Fib()没有传入参数,class里的num无法取值,所以抛出错误。你只需要将f = Fib()改为f = Fib(10)就好了。可能你会问你在print函数里赋值了print f(10)。但是由于程序从上往下读,当读到f = Fib()就出错了。读不到print f(10)。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

为什么不可以

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信