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

python菜鸟写的关于__len__()章节的任务,运行出来总是回我一个空的[]和0

class Fib(object):
    count=[]
    def __init__(self, num):
        self.num=num
    def fab(self):
        if self.num==1:
            Fib.count.append(0)
            Fib.count.append(1)
                
        elif self.num==0:
            Fib.count.append(0)
        else:
            Fib.count.append(0)
            Fib.count.append(1)
            for n in range(self.num):
                c=int(fab(n-1))+int(fab(n-2))
                
                Fib.count.append(c)
    def __str__(self):
        return str(Fib.count)

    __repr__ = __str__

    def __len__(self):
        return len(Fib.count)

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


正在回答

1 回答

首先不谈这fab方法的逻辑,这个方法你都没调用过,这count根本没变....

至于你这个fab方法,你这方法中调用自己,递归?但没个出口,显然有问题,而且,这是方法不是函数,你要用self.fab来调用,直接调fab会报错,同样,你定义fab方法是没有参数的,但是你在方法中调用自身时又传了参数,显然也是错误的,这些都是问题,我也是个新手,说出我看到的问题,有说错的地方请见谅~

至于这个章节任务,虽然觉得没必要实现的这么麻烦,但每个人有自己的想法,而且是学习阶段,都会有自己的尝试,就不说什么了。加油~

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

举报

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

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

进入课程

python菜鸟写的关于__len__()章节的任务,运行出来总是回我一个空的[]和0

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