La méthode __str__
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compteToutes les questions

Sebastien
17 décembre 2024
Résolue
3 réponses
Différence entre méthodes magiques et classiques en Python
Bonjour ,
Ce que vous appelez une méthode "magique" , c'est une méthode qui se déclenche :
-soit automatiquement comme `__init__`
- soit soit qui se déclenche à partir de l'instance d'un objet comme `__str__`
alors qu'une méthode classique se déclenche plutot
du genre `moninstancedobjet.unemethodeX()` # cad avec la syntaxe du "." et des parenthèses .
Aie je bien compris la différence entre les 2 type de méthode "magique" vs "classique" ?
Est-ce-qu'il existe des méthodes "magiques" qui se déclenchent par d'autres moyens que l'instance ou automatiquement ?

Beninio
17 août 2023
Résolue
1 réponse
la video ne demarre pas
La video sur la methode __str__ ne demarre pas.
00:00:00 :Jusqu'à présent, quand on a créé des instances à partir d'une classe et qu'on les affiche avec un print,vous voyez que ça ne nous donne pas beaucoup d'informations sur cette instance.
00:00:09 :On a en fait l'information de son adresse en mémoire et on sait que c'est un objet qui appartient à la classe voiture.Nous ce qu'on aimerait c'est avoir un peu plus d'informations sur cette instance.
00:00:19 :Pour ça, on va pouvoir utiliser une méthode qu'on dit magique,puisque là encore elle va être précédée et suivie de deux tirés du bas.Cette méthode, ça va être tout simplement la méthode str.
00:00:30 :Str, ça va nous permettre de définir l'affichage qu'on veut avoir quand on print notre instanceou quand on la convertit en chaîne de caractère avec la fonction string.
00:00:40 :Là, je vais tout simplement mettre return ici d'une phrase.Je vais dire voiture de marque et je vais insérer la marque avec vitesse maximale 2 et j'insère la vitesse.
00:00:49 :Alors bien faire attention, ce n'est pas un print qu'il faut mettre ici, c'est bien un return.Nous, on veut retourner cette valeur et ensuite cette valeur, on va l'afficher avec un print.
00:00:58 :Donc là, si j'exécute le script, vous allez voir que cette fois-ci, on va avoir un print qui est beaucoup plus intéressantpuisqu'on a vraiment la phrase qui s'affiche.
00:01:07 :On sait que cette instance, c'est une voiture de marque Porsche avec une vitesse maximale de 200.C'est un peu plus sympa que ce qu'on avait avant avec juste l'adresse en mémoire.
00:01:16 :On peut aussi récupérer cette information, comme je vous ai dit, si on fait une conversion avec la fonction chaîne de caractère.Cette fameuse fonction string qu'on a utilisée dans les toutes premières parties pour convertir un nombre en chaîne de caractère,on peut l'utiliser pour récupérer cette valeur ici.
00:01:33 :Je pourrais mettre, par exemple, affichage égale string de mon instance Porsche et printer par la suite affichage.On va se retrouver avec exactement la même chose, c'est-à-dire cette phrase qui nous dit que la voiture est de marque Porsche avec une vitesse maximale de 200.
00:01:49 :Dans ces deux cas de figure, soit quand on convertit notre instance avec la fonction string,ou quand on l'affiche directement en faisant un print de notre instance,c'est tout ce qui est retourné à l'intérieur de cette méthode magique qui va nous être affichée.
00:02:03 :La méthode str, là encore, précédée et suivie de underscore.N'oubliez pas de passer l'instance ici, puisque nous on veut l'afficher sur une instance,donc on met self et ensuite on peut utiliser ce self pour afficher plusieurs attributs qui appartiennent à cette instanceet avoir un affichage qui est donc un peu plus intelligible que ce qu'on avait avant avec uniquement l'adresse en mémoire.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.