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

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

값이 할당됩니다. 으아악

그래서 f[0] = 0.

무슨 일이 일어나고 있는지 모르기 때문에 단계별로 디버깅하고 문서를 확인합니다.

Peter_Zhu

f[0], 즉 n = 0

으아악

루프 본문이 직접 반환되므로 a는 변경되지 않았으며 여전히 0입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿