- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie, on va voir ce qu'on appelle le polymorphisme.Le polymorphisme, c'est un concept associé aux classesqui indique qu'on doit pouvoir utiliser des méthodesde la même façon sur tous les objets d'une même entité.
00:00:13 :Alors je veux dire par là que pour l'instant, on a une classe véhiculedont on hérite pour faire une classe voiture et une classe avion.
00:00:19 :Donc une voiture et un avion, vous êtes d'accord,ils ne font pas exactement la même chose.La voiture, elle va rouler et l'avion, il va voler.
00:00:27 :Donc on a ici deux méthodes, une méthode roule et une méthode vol.A l'intérieur de notre classe véhicule, on a une méthode avancequi est donc générique à tous les véhicules.
00:00:35 :Tous les véhicules, avant de rouler ou de voler, il faut qu'ils démarrent.Donc on a ici un print qui dit dans notre classe véhiculeque le véhicule démarre.
00:00:43 :Et dans notre classe voiture, on a donc la méthode rouleet la méthode vol dans la classe avion.Le problème actuellement, c'est que si on veut faire démarrerle véhicule, que ce soit une voiture ou un avion,on ne va pas avoir la même méthode pour les deux.
00:00:57 :C'est-à-dire que notre voiture, il va falloir qu'on diseV.roule et notre avion A.vole.Et donc ça, c'est l'antithèse du polymorphisme.C'est-à-dire que là, en fait, ce qu'on voudrait, c'est utiliserla même méthode pour tous les véhicules.
00:01:10 :Donc que pour une voiture, on lui dise avanceet qu'un avion aussi, on lui dise avance.Et qu'ensuite, en fonction de si c'est une voiture ou d'un avion,il fasse ce qu'on lui demande.
00:01:20 :Donc pour l'avion, il va voler et pour la voiture, elle va rouler.Donc ce qu'on va faire ici, c'est que plutôt que d'utiliser des nomsspécifiques comme roule et vole, on va utiliser le même nom ici.
00:01:29 :C'est-à-dire avance et avance aussi.Le problème, c'est que nous, on aimerait bien récupérer icice qui est indiqué dans la méthode avance du véhicule.Le problème, c'est que là, si on fait self.avance,
00:01:42 :et bien en fait, self, ça va référer à la méthode de notre voiture.Et là, pareil, si je fais self.avance, ça va référerà la méthode de notre classe avion.
00:01:52 :Et là, on va avoir une boucle infinie puisqu'on va référer à la méthodeet la méthode va être appelée et on va appeler la méthode, etc.
00:01:59 :Donc ça va faire quelque chose d'infini.Je vais vous le montrer si je fais run Python file in terminal.Là, vous voyez, il nous dit recursion error.
00:02:07 :Donc ça veut dire que c'est une erreur de récursion.En fait, il a essayé d'exécuter cette méthode et elle s'est appeléetrop de fois et donc au bout d'un moment, le script abandonnepuisque c'est comme une boucle infinie, si vous voulez.
00:02:17 :Donc là, ce qu'on aimerait, c'est pouvoir quand même appelerla méthode avance de notre classe véhicule pour qu'à chaque foisqu'on avance, que ce soit une voiture ou un avion,on démarre le véhicule avant d'avancer.
00:02:29 :Donc là, ce qu'on va faire, c'est appeler la méthode de la classe parente,non pas avec self, mais directement en écrivant ici la classe véhicule.
00:02:37 :Ce qu'on peut faire encore pour se simplifier, c'est utiliser supercomme on l'a vu dans les parties précédentes.Donc c'est là vraiment qu'on va avoir ce qu'on appelle du polymorphisme.
00:02:45 :C'est-à-dire qu'on a le même nom pour la méthode.La méthode s'appelle avance dans les trois cas,donc pour le véhicule, pour la voiture et pour l'avion.
00:02:53 :Et à chaque fois, on va réutiliser la méthode de la classe parentepour afficher ce qui est défini dans la classe parente.Dans ce cas-ci, on ne va pas seulement redéfinir la méthode avance,mais on va l'augmenter, si vous voulez.
00:03:06 :Dans les parties précédentes, quand on avait la méthode affichée projetet que dans notre classe enfant, donc la classe junior,on a fait une surcharge, la surcharge, on a complètement écraséle comportement de la méthode qui était dans la classe parente.
00:03:19 :On avait deux méthodes qui s'appelaient affichées projet,mais les deux méthodes faisaient des choses différentes.Là, ce qu'on fait, c'est qu'on veut augmenter la méthode qui existe.
00:03:27 :Donc on veut utiliser cette méthode avance,mais pour la voiture, on veut afficher quelque chose de différent que pour l'avion.Donc là, dans ce cas-ci, si j'exécute mon script,on va bien avoir à chaque fois le véhicule qui démarreet ensuite une action différente pour la voiture et pour l'avion.
00:03:40 :Donc on a le véhicule qui démarre, la voiture qui rouleet le véhicule qui démarre et l'avion qui vole.Donc ça, c'est ce qu'on appelle vraiment le polymorphisme.
00:03:47 :Donc il y a la surcharge où on fait juste avoir deux méthodesqui ne font pas la même chose, qui ont le même nom,mais qui ne font pas la même chose.
00:03:53 :Et cette notion ici de polymorphisme,qui veut dire qu'on va donc appeler la méthode parentet qu'on va augmenter la méthode dans la classe enfant.
00:04:01 :L'avantage de ça, du coup, c'est qu'on va pouvoir utiliser la même méthode,donc le même nom, que ce soit une voiture ou un avion.Donc on n'a pas besoin comme ça de faire des vérifications,de dire bon, si c'est une voiture, tu veux utiliser la méthode rouleet si c'est un avion, tu veux utiliser la méthode vol.
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.