La différence est que dans le cas n°1, c'est une variable d'instance alors que le cas n°2 est une variable de classe.
Pour en savoir plus, regarder des tutoriels sur chacun des cas.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Dans le premier cas, la valeur par défaut de color est stocké dans le paramètre par défaut d'__init__ et pourra être utilisé pour créer l'attribut d'instance color. Dans le 2nd cas, color est un attribut de classe. Il sera accédé tant que l'attribut d'instance n'existe pas.
La différence... côté résultat, il n'y en a pas trop. Après, c'est une question de style. Une classe, c'est un état dont rendent compte les attributs (de classe ou pas) et il sera plus simple d'utiliser la forme attribut de classe pour les documenter en leur donner une valeur par défaut car les paramètres optionnels d'__init__ n'ont aucune raison de devenir attributs de classe.
Mais comme toujours, choisir l'un ou l'autre va dépendre du contexte et de la facilité à relire le code en optant pour l'un ou l'autre (ou les 2).
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Constructeur class
× 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.
Python c'est bon, mangez-en.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)