Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Problème de return dans class method

+1 vote

J'ai une classmethod définie comme suit:

def str(self):
    with open(self.get_path(), 'r') as f:
        for line in f:
            s = line.rstrip()
            print s

qui print effectivement toutes les lignes du fichier. Quand j'essaye de remplacer le print par un return la méthode ne me retourne plus qu'une seule ligne du fichier.
(Il faut que j'utilise return car sinon repr fail en TypeError)

Comme devrais-je m'y prendre pour que return m'affiche l'entièreté du fichier?

demandé 20-Mar-2015 par barnumbirr (2,754 points)

1 Réponse

+2 votes
 
Meilleure réponse

Est-ce que ça ça t'irait ?

def str(self):
    with open(self.get_path(), 'r') as f:
        lines = [line.rstrip() for line in f]
        return '\n'.join(lines)
répondu 20-Mar-2015 par bulange (618 points)
sélectionné 20-Mar-2015 par barnumbirr

Merci, c'est exactement ce que je voulais faire. Faut croire que je réflechis en 56k aujourd'hui pour ne pas avoir pensé a ça. :P

Des fois, le cerveau refuse de se mettre en marche. Ça m'arrive trop souvent. :p

...