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 再回到循环体?
初学者还有很多不懂,请多指教,谢谢
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 回答4.3k 阅读✓ 已解决
2 回答861 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答855 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.5k 阅读
3 回答903 阅读✓ 已解决
在用下标取值符
[]
的时候,程序会去访问对象的__getitem__
函数。f[0]
相当于f.__getitem__(self, 0)
,n
赋值为0所以
f[0] = 0
。不知道怎么回事,就一步一步调试,查文档。