Outils pour utilisateurs

Outils du site


classe_iterable

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 "itérateur". Le code qui suit consiste à créer une classe qui possède la fonction "itérateur".
  
-===== Codage =====+===== Exemple de codage: simuler la fonction xrange() =====
  
 A titre d'exemple, on va créer une classe qui simule la fonction "xrange()", et on va l'appeler "xplage()". A titre d'exemple, on va créer une classe qui simule la fonction "xrange()", et on va l'appeler "xplage()".
Ligne 100: Ligne 100:
 En partant de ce principe, il est assez facile d'ajouter de telle fonctions d'itération à n'importe quelle classe. En partant de ce principe, il est assez facile d'ajouter de telle fonctions d'itération à n'importe quelle classe.
  
 +===== Exemple de codage: n'afficher que les lignes non-vides d'une fichier texte =====
 +
 +Même principe, voici le codage de la classe itérable:
 +
 +<code python>
 +class fichier(object):
 + 
 +    def __init__(self, nf):
 +        self.f = open(nf, 'r')
 + 
 +    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('\r\n')
 +            if ligne.strip()!="":
 +                break
 +        return ligne
 +</code>
 +
 +Et voilà comment on s'en sert:
 +
 +<code python>
 +nf = r"C:\Chemin\test.txt"
 + 
 +for ligne in fichier(nf):
 +    print ligne
 +</code>
 +
 +
 +\\
 Amusez-vous bien! Amusez-vous bien!
  
classe_iterable.txt · Dernière modification: 2009/10/19 18:51 de tyrtamos