Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question de sémantique

Qu'est-ce que __init__ etc...

Sujet résolu
    3 juillet 2010 à 0:08:21

    B'soir !

    Désolé, c'est probablement une question assez bête mais ça me turlupine depuis quelques temps et ça me gêne dans la compréhension d'un certain nombre de docs que je trouve ici où là :

    Je rencontre à peu près tout le temps des choses comme

    __init__
    __name__
    
    
    etc...
    


    Le souci c'est que je ne sais pas comment ça s'appelle (ce serait finalement un très bon début) ni comment ça s'utilise, puisque je crois comprendre à peu près leur utilité. Si quelqu'un pouvait éclairer ma lanterne, j'ai pas trouvé de réponse qui me satisfasse pleinement, je lui en serais vraiment reconnaissant. ^^
    • Partager sur Facebook
    • Partager sur Twitter
      3 juillet 2010 à 2:02:58

      Tu as vu la programmation orientée objet ? Même si le __name__ n'a pas de rapport direct, il vaudrait mieux que tu te renseignes dessus (tu comprendras le fonctionnement de __init__ et pourras lire ça sans devoir demander la signification de chaque terme).
      • Partager sur Facebook
      • Partager sur Twitter
        3 juillet 2010 à 2:09:36

        Bon je m'y attèle, si c'est la marche à suivre, merci !
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          3 juillet 2010 à 3:07:43

          Bonjour,

          Il est très difficile de répondre à ta question dans un post. Je pense que le sujet sera surement abordé dans la troisième partie du tutoriel de 6pri1 et prolixe.

          Mais pour la petite info, voici :

          Les identifiants préfixés et suffixés par des double-underscope (__*__) sont des attributs ou des méthodes spéciales du langage Python. Ils ou elles sont utilisés par le systeme du langage pour diverses raisons. Les décrire ici ne serai que pur folie ! Il y en a beaucoup trop.

          Il faut, pour commencer, se rappeler qu'en python tout est objet, même l'interpréteur Python (qui contient la portée globale de nos programmes ou scripts lorsqu'on les exécutent). Chacuns de ces objets ont des attributs spéciaux et parfois des méthodes spéciales parmis d'autres methodes et attributs non-spéciales. Il est possible de consulter une liste de ceux-ci avec la fonction intégrée dir(). On les utilise, lorsque que l'on crée ou dérive une nouvelle classe par exemple, pour modifier le comportement de Python avec cette classe.

          Deux trois exemple :
          • x.__init__() est la méthode utilisée par Python pour construire l'objet x lord de son instanciation
          • x.__add__(y) est la méthode utilisée par Python pour additionner, ajouter y à x (équivault à x += y)
          • x.__doc__ est l'attribut contenant la Docstring de x

          En les surchargeants dans une nouvelle classe on modifie le comportement de Python vis-à-vis de cette classe. Par exemple, l'instruction for utilise la méthode __iter__ de l'objet dont on iter le contenu.

          Il y en a beaucoup d'autres que l'on peut utiliser pour beaucoup d'autres chose; définir les modules à importer lorsque que l'on import un package (__all__), récupérer le nom d'un module (__name__), ect...

          Si l'anglais ne te fais pas peur, la documentation officielle te donnera toutes les infos dont tu as besoin en attendant la troisième partie du tutoriel sur le langage python (et plus encore) ;) .

          Sur ceux, bonne continuation.

          Edité suite à cette discussion.
          • Partager sur Facebook
          • Partager sur Twitter
            3 juillet 2010 à 11:17:32

            Merci de mettre ton sujet en résolu si on a répondu à ta question. ;)
            • Partager sur Facebook
            • Partager sur Twitter
            Zeste de Savoir, le site qui en a dans le citron !
              7 juillet 2010 à 0:35:47

              Fait ! J'imagine que oui, j'aurai une réponse plus précise avec la suite du tutoriel, parce que je dois avouer que j'ai du mal à saisir, même en lisant la doc' de python.org.
              • Partager sur Facebook
              • Partager sur Twitter
                7 juillet 2010 à 17:43:44

                Avec la suite du tutoriel, tu seras surtout plus familiarisé avec tout ça (même sans en avoir explicitement forcément entendu parler, enfin forcément un peu de certaines) et tu n'auras pas de mal à lire la doc.
                • Partager sur Facebook
                • Partager sur Twitter

                Question de sémantique

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown