Maison > Questions et réponses > le corps du texte
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 再回到循环体?
初学者还有很多不懂,请多指教,谢谢
迷茫2017-04-18 10:27:31
Lors de l'utilisation de l'opérateur de valeur d'indice []
, le programme accédera à la fonction __getitem__
de l'objet.
f[0]
est équivalent à f.__getitem__(self, 0)
, n
reçoit la valeur 0
a = 0, b = 1
for x in range(0): # 这里range(0) 直接跳过
a, b = b, a + b
return a # a = 0
Alors f[0] = 0
.
Je ne sais pas ce qui se passe, alors je le débogue étape par étape et vérifie la documentation.
天蓬老师2017-04-18 10:27:31
f[0], c'est-à-dire n = 0
for x in range(n):
a, b = b, a + b
Le corps de la boucle revient directement, donc a n'a pas changé et est toujours 0.