찾다

 >  Q&A  >  본문

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

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

怪我咯怪我咯2785일 전675

모든 응답(2)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-18 10:27:31

    아래 첨자 값 연산자 []를 사용하면 프로그램은 개체의 __getitem__ 함수에 액세스합니다.

    f[0]f.__getitem__(self, 0)과 동일하며, n에는 0

    값이 할당됩니다. 으아악

    그래서 f[0] = 0.

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

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:27:31

    f[0], 즉 n = 0

    으아악

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

    회신하다
    0
  • 취소회신하다