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 :

[Class et variables] réinitialiser....


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut [Class et variables] réinitialiser....
    je cherche le moyen de créer une fonction pour réinitialiser mes variables dans ma classe.
    Y aurait il une fonction ou méthode qui permet de le faire?

    En effet, j'ai un nombre important de variables dans mon appli, et jusqu'a présent je n'ai trouver que ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def efface_all(self):
        self.x,self.y=0,0
        self.dico={}
        self.canvas.delete(tk.ALL)
        .....
    donc si j'ai une centaine de variable c'est un peu lourd a faire, juste pour initialiser l'appli et ses variables.

    merci d'avance.

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    pourquoi ne pas instancier un nouvel objet ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    pouvez vous expliquer.

    je ne comprend pas bien le concept encore!

    peut être un exemple pourrait m'aider a comprendre?

    merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 191
    Par défaut
    Ce que GrandFather veut dire c'est que lors de la construction d'un objet, une méthode particulière appelée "constructeur" sert à initialiser les variables membres de l'objet... Donc si tu réappliques le contructeur à ta référence tu auras un objet réinitialisé (donc avec toutes ses variables réinitialisées)...

    Exemple:
    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
    27
     
    class MonObject:
     
        def __init__(self):
     
            self.x = 0
            self.y = 0
     
        def setX(self, val):
     
            self.x = val
     
        def getX(self):
     
            return self.x
     
    T = MonObject()
     
    print(T.getX())
     
    T.setX(1)
     
    print(T.getX())
     
    T = MonObject()
     
    print(T.getX())
    J'espère que ca t'aidera. Mnt si tu ne veux pas récréer un nouvel objet (et donc ne pas rappeler le contructeur) tu peux definir une méthode à ton objet qui réinitialise tes variables, mais ca n'a pas vraiment de sens...

  5. #5
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    d'accord, j'ai compris.

    ca donnerait qque chose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Mon_appli:
        def __init__(self):
            self.root=tk.Tk()
            self.x=0
            etc.......
     
         def efface(self):
            self.__init__()
    Est ce comme ca?

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 18
    Par défaut
    __init__ est le constructor. Conceptuellement on appele au moment de la creation de l'objet . Pour qu'il n'y as pas ambiguité, moi je ferai plutot:

    class Mon_appli:
    def __init__(self):
    self.efface()

    def efface(self):
    self.root=tk.Tk()
    self.x=0
    etc.......

    c + propre et elegant

Discussions similaires

  1. [POO] Variable réinitialisée dans une classe
    Par dragonfly dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 04/12/2007, 12h06
  2. Réponses: 3
    Dernier message: 08/12/2005, 14h41
  3. Réponses: 2
    Dernier message: 09/10/2005, 15h35
  4. [Sessions] Classes et variables de sessions
    Par Thanaroth dans le forum Langage
    Réponses: 4
    Dernier message: 06/10/2005, 16h17
  5. Réponses: 6
    Dernier message: 06/10/2004, 12h59

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