Partage
  • Partager sur Facebook
  • Partager sur Twitter

Qu'est-ce que signifie les deux underscore...

...d'un côté à l'autre d'un mot ?

Sujet résolu
Anonyme
    5 juillet 2010 à 16:04:29

    Bonjour voilà, aussi lâche que je suis, le tutoriel sur les liste et les tuples ne m'a pas intéressé, alors je suis allé voir ailleurs pour la POO ! :ninja:
    Non honnêtement je compte revenir après pour resuivre le tutoriel mais c'est que j'ai une grosse envie insatiable de faire mes classes, parce que, travailler sur la fonction str, moi ca me frustre qu'on voye comment utiliser des fonctions d'une classe sans pouvoir en créer ( je suppose que ca a son interêt, après tout, oui, c'est bon de savoir utiliser une classe avant d'en créer une :lol: ). Bref j'en reviens à la question initiale, sur le tutoriel que j'ai trouvé, je vois :
    __doc__

    :waw:

    C'est quoi enfaite ? Je demande ca parce que je retrouve souvent ces deux "__XXX___"
    Est-ce important ? :U
    • Partager sur Facebook
    • Partager sur Twitter
      5 juillet 2010 à 16:19:33

      Les méthodes ou variables spéciales d'un objet porte un nom de cette forme.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        5 juillet 2010 à 16:20:29

        Hmm... "spéciales" ?
        • Partager sur Facebook
        • Partager sur Twitter
          5 juillet 2010 à 16:24:47

          Oui, par exemple:

          >>> class Test:
          ... 	"Ceci est un exemple illustrant le concept de méthodes et variables spéciales"
          ... 	def __iter__(self): #Méthodes spéciales définissant la façon d'itérer l'objet
          ... 		yield "Voila"	#c'est un générateur
          ... 
          >>> a=Test()
          >>> print a.__doc__
          Ceci est un exemple illustrant le concept de méthodes et variables spéciales
          >>> for i in a:
          ... 	print i
          ... 
          Voila
          
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            5 juillet 2010 à 16:28:37

            Enfaite c'est un nom comme un autre ? oO
            Tu l'aurais appelé différemment, ca aurait rien changé ?
            • Partager sur Facebook
            • Partager sur Twitter
              5 juillet 2010 à 16:33:39

              Oui, mais tu remarques quand même que pour __doc__, c'est la documentation que je fournis juste après la class Test: qui lui est affectée. De la même façon, les méthodes spéciales telles que __init__ ou __iter__ ont un comportement particulier (surcharge d'opérateur pour __iter__, appelé en tant que constructeur à la création de l'objet pour __init__).

              Edit:
              à propos d'appeler différemment, j'espère que parlais de la façon d'appeler la méthode:
              >>> for i in a.__iter__():
              ... 	print i
              ... 
              Voila
              
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                5 juillet 2010 à 16:39:53

                Bonjour,

                Je t'invite à lire ce sujet. ;)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  5 juillet 2010 à 16:40:42

                  Mince c'était y'a que deux jours :lol:
                  Bon okay merci, et merci à EMC1 !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 juillet 2010 à 16:59:43

                    Citation : LeYan'tibus

                    # x.__init__() est la méthode utilisée par Python pour instancier l'objet x
                    # x.__add__(y) est la méthode utilidée par Python pour additionner, ajouter y à x (équivault à x += y)



                    Justement __init__ n'est pas utiliser pour instancier un objet mais est appelée automatiquement juste après son instanciation.
                    __add__ surcharge l'opérateur +, x+=y étant du sucre syntaxique pour x = x + y.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      5 juillet 2010 à 17:18:34

                      Ok ok! Ne jouont pas sur les mots, ^^

                      obj.__init__() construit l'objets lors de son instanciation. :-°
                      Elles permet de définir (ou surcharger) la méthode utilisée pour construire l'objet.
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Qu'est-ce que signifie les deux underscore...

                      × 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