Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
classe_iterable [2009/08/31 22:30] tyrtamos |
classe_iterable [2009/10/19 18:51] (Version actuelle) tyrtamos |
||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
Le code qui suit consiste à créer une classe qui possède la fonction " | Le code qui suit consiste à créer une classe qui possède la fonction " | ||
- | ===== Codage | + | ===== Exemple de codage: simuler la fonction xrange() |
A titre d' | A titre d' | ||
Ligne 100: | Ligne 100: | ||
En partant de ce principe, il est assez facile d' | En partant de ce principe, il est assez facile d' | ||
+ | ===== Exemple de codage: n' | ||
+ | |||
+ | Même principe, voici le codage de la classe itérable: | ||
+ | |||
+ | <code python> | ||
+ | class fichier(object): | ||
+ | |||
+ | def __init__(self, | ||
+ | self.f = open(nf, ' | ||
+ | |||
+ | def __iter__(self): | ||
+ | return self | ||
+ | |||
+ | def next(self): | ||
+ | while True: | ||
+ | ligne = self.f.readline() | ||
+ | if len(ligne)==0: | ||
+ | self.f.close() | ||
+ | raise StopIteration | ||
+ | ligne = ligne.rstrip(' | ||
+ | if ligne.strip()!="": | ||
+ | break | ||
+ | return ligne | ||
+ | </ | ||
+ | |||
+ | Et voilà comment on s'en sert: | ||
+ | |||
+ | <code python> | ||
+ | nf = r" | ||
+ | |||
+ | for ligne in fichier(nf): | ||
+ | print ligne | ||
+ | </ | ||
+ | |||
+ | |||
+ | \\ | ||
Amusez-vous bien! | Amusez-vous bien! | ||