玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python3.x版本中 斐波那契数列, 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 再回到循环体?

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

f[0]的话,即 n = 0

for x in range(n):
    a, b = b, a + b

循环体就直接return了啊,所以是a没变还是0啊。

在用下标取值符[]的时候,程序会去访问对象的__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

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

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13770.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 17时37分10秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules