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 :

Utilisation de la variable self dans les méthodes


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut Utilisation de la variable self dans les méthodes
    Bonjour,
    Je suis un débutant en python. Je ne sais pas à quoi correspond la variable SELF que l'on passe en paramètre dans les méthodes. Je souhaite parse du XML en python, je me suis basé sur le tutoriel
    http://quilovnic.developpez.com/pythondom/
    mais celui ne décrit que classe et méthodes à déclarer mes pas leurs utilisations.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Le paramètre self correspond à l'instance utilisée pour appeler la méthode, elle est passée automatiquement par Python (pas besoin donc de la faire figurer donc comme argument explicite)

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Points : 199
    Points
    199
    Par défaut
    Tu y verras sûrement plus clair quand tu aborderas la programmation orientée objet.
    Mais en réalité, tu as certainement déjà utiliser des méthodes sur un objet, sans te rendre compte du mécanisme de l'attribut self qui se trouvait derrière :

    Quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_liste.append(une_valeur)
    L'appel à la méthode append correspond à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.append(ma_liste, une_valeur)
    (Ce code est tout à fait valide et fait la même chose !)

    Et la définition de la méthode append de la classe list (les types sont des classes) est de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def append(self, valeur):
        ....
    La lien entre ma_liste et self est tout de suite plus visible.
    Voilà pourquoi toutes les méthodes prennent self comme premier argument, c'est une variable qui va contenir la référence de l'objet sur lequel tu appliques la méthode.
    Note que self n'est pas un mot-clef, c'est juste une variable, mais par convention et par soucis de clarté on lui donne le nom de self.

Discussions similaires

  1. Utiliser des variables globales dans les userforms
    Par escalopepane dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/10/2013, 16h12
  2. [1.x] utilisation variables sessions dans les class form
    Par xamxamle dans le forum Symfony
    Réponses: 5
    Dernier message: 16/03/2011, 16h50
  3. Réponses: 15
    Dernier message: 27/03/2009, 13h37
  4. [EJB2.1 Entity] [BMP] les requetes doivent-elles se trouver directement dans les méthodes ?
    Par webspeak dans le forum Java EE
    Réponses: 2
    Dernier message: 24/03/2005, 08h34
  5. Utilisation d'une Variable(Vb) dans d'autre language
    Par cach dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/02/2005, 12h00

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