Outils pour utilisateurs

Outils du site


classe_iterable

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 par tyrtamos