84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
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 再回到循环体?
初学者还有很多不懂,请多指教,谢谢
走同样的路,发现不同的人生
Lors de l'utilisation de l'opérateur de valeur d'indice [], le programme accédera à la fonction __getitem__ de l'objet.
[]
__getitem__
f[0] est équivalent à f.__getitem__(self, 0), n reçoit la valeur 0
f[0]
f.__getitem__(self, 0)
n
a = 0, b = 1 for x in range(0): # 这里range(0) 直接跳过 a, b = b, a + b return a # a = 0
Alors f[0] = 0.
f[0] = 0
Je ne sais pas ce qui se passe, alors je le débogue étape par étape et vérifie la documentation.
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.
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 0Alors
f[0] = 0
.Je ne sais pas ce qui se passe, alors je le débogue étape par étape et vérifie la documentation.
f[0], c'est-à-dire n = 0
Le corps de la boucle revient directement, donc a n'a pas changé et est toujours 0.