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 :

Gestion de variable de classe


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut Gestion de variable de classe
    Bonjour,

    Dans une classe, je choisis d'encapsuler un variable (dt). Je prépare un setter, un getter et une property pour donner accès à cette variable.
    Je prépare également un __repr__ pour autoriser un print des objets instanciés.

    Ensuite, j'instancie ma classe et je fais un print de mon nouvel objet => dt = 1
    je modifie mon objet de la manière suivante : monObjet.dt = 2

    Dans la fenêtre de commande, si je tape monObjet.dt j'obtiens 2mais si je tape print monObjet, j'obtiens 1

    Quelqu'un aurait un idée ?

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    class bidon:
     
        def __init__ (self, dt=1):
            self.__dt=dt
     
        def __repr__(self):
            toPrint  = "dt [s] :" + str(self.__dt)
            return toPrint
     
        def __set_dt(self, dt):
            self.__dt = float(dt)
     
        def __get_dt(self):
            return self.__dt    
     
        dt = property(__get_dt, __set_dt, None, None)
     
     
    if __name__ == "__main__":
        toto = bidon()
        print toto
     
        toto.dt=2
        print toto.dt
        print toto

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 553
    Par défaut
    Salut,

    d'après la doc python pour la fonction property:
    Citation Envoyé par la doc
    Return a property attribute for new-style classes (classes that derive from object).
    suffit que tu fasse hériter explicitement ta classe "bidon" de object ou toute autre classe héritant de object pour que ça fonctionne:

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Par défaut
    Merci beucoup !

    Ca faisait un moment que je cherchais et je n'ai pas soupçonné une seconde que ça pouvait venir de là !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion de variables globales dans une classe Thread
    Par man84 dans le forum Général Java
    Réponses: 13
    Dernier message: 04/05/2015, 14h19
  2. Réponses: 6
    Dernier message: 23/09/2005, 12h54
  3. Gestion de Variables dans un script
    Par John Lee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/03/2005, 14h17
  4. Méthode optimale gestion nombre variable items?
    Par fredtheman dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 14/08/2004, 20h19
  5. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44

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