IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Valeur retourné par une instance


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de vdumont
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 510
    Par défaut Valeur retourné par une instance
    Bonjour, j'aimerais savoir quel est le nom de la fonction qu'il faut que je redéfinisse pour que si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class MaClasse:
        self.x = 1
        #...
     
    #...
    a = MaClasse()
    print a
    Que je puisse decider ce que renvoit 'a' lorsque print l'invoque par exemple (exemple je voudrais renvoyer x, et non "instance at 0x.....") .

    Merci!

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonsoir,

    il faut reecrire la methode __repr__; celle-ci retourne un str, pas le choix!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class MaClasse(object):
     
        def __init__(self):
            self.x = 1
     
        def __repr__(self):
            return str(self.x)
    Perso j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class MaClasse(object):
     
        def __init__(self):
            self.x = 1
     
        def __repr__(self):
            r = ["classe: %s" % self.__class__.__name__]
            [r.append("  %s: %s" % (k, str(v))) for k, v in self.__dict__.items()]
            return "\n".join(r)
    Cela permet d'afficher le nom de la classe et tous ses attributs.
    Il est aussi possible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        def __repr__(self):
            r = ["classe: %s" % self.__class__.__name__]
            [r.append("  %s: %s" % (k, str(v))) for k, v in self.__dict__.items() 
                if not k.startswith('_')]
            return "\n".join(r)
    Ca permet de n'afficher que les attributs publiques.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/04/2007, 20h02
  2. valeur retournée par une fonction
    Par Biosox dans le forum C
    Réponses: 13
    Dernier message: 19/01/2007, 23h17
  3. Valeur retournée par une combo
    Par roms19 dans le forum WinDev
    Réponses: 10
    Dernier message: 19/01/2007, 09h51
  4. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  5. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo