Python 3.5,斐波数列, a,b = 0,1

查看:275
本文介绍了Python 3.5,斐波数列, a,b = 0,1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

class Fib(object):

def __getitem__(self, n):
    a, b = 0, 1
    for x in range(n):
        a, b = b, a + b
    return a
    

f = Fib()
f[0] = 0

不解为什么是f[0] = 0

函数是不是直接执行Return 再回到循环体?

初学者还有很多不懂,请多指教,谢谢

解决方案

在用下标取值符[]的时候,程序会去访问对象的__getitem__函数。

f[0] 相当于 f.__getitem__(self, 0)n赋值为0

a = 0, b = 1
for x in range(0):   # 这里range(0) 直接跳过
    a, b = b, a + b
return a             # a = 0

所以f[0] = 0

不知道怎么回事,就一步一步调试,查文档。

这篇关于Python 3.5,斐波数列, a,b = 0,1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆