J'essaie d'apprendre ce que les itérateurs et les générateurs sont en python, en passant par un tutoriel trouvé en ligne qui utilisait cet itérateur fibonacci par exemple. J'ai des problèmes avec le commentaire sur les lignes 9-11. Qu'est-ce que cela signifie que "les anciennes valeurs de self.fn1 et self.nf2 sont utilisées pour assigner la nouvelle valeur"? Je comprends que les tuples sont des objets immuables mais je ne vois pas pourquoi utiliser tuple est préféré à une liste. Je suppose que je ne vois pas pourquoi l'aide d'un tuple ici est mieux que d'utiliser une liste et je voudrais mieux comprendre si quelqu'un peut aider à expliquer:/essayer de comprendre pourquoi un tuple est préféré à une liste pour un exemple python spécifique (à partir d'un tutoriel)
4 class fibnum:
5 def __init__(self):
6 self.fn2 = 1 # "f_{n-2}"
7 self.fn1 = 1 # "f_{n-1}"
8 def next(self): # next() is the heart of any iterator
9 # note the use of the following tuple to not only save lines of
10 # code but also to insure that only the old values of self.fn1 and
11 # self.fn2 are used in assigning the new values
12 (self.fn1,self.fn2,oldfn2) = (self.fn1+self.fn2,self.fn1,self.fn2)
13 return oldfn2
14 def __iter__(self):
15 return self
de: http://heather.cs.ucdavis.edu/~matloff/Python/PyIterGen.pdf
Le commentaire utilise également incorrectement "assurer". –
Je vous suggère d'éviter ce tutoriel. Son style de codage est moche et non conforme au PEP8. La section suivante fait 'de fib import *'. Ca suffit pour moi. –
bien, mal essayer de chercher quelque chose de différent. c'était juste le premier tutoriel sur ce sujet que j'ai trouvé. – john