Python 3.5,斐波数列, a,b = 0,1
怪我咯
怪我咯 2017-04-18 10:25:31
0
2
619

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 再回到循环体?

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

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답 (2)
迷茫

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

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

    Peter_Zhu

    f[0]的话,即 n = 0

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

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

      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!