- 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
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte personlive_helpToutes les questions
Salvatore
2 janvier 2023 - 02 janvier 2023 à 2:15
checkConversation résolue
2 réponses
problème lors de la création de la classe Liste
Bonjour,J'ai suivi la vidéo création de la liste de courses, pour reproduire le script dans Visual Studio Code.Mais je n'arrive pas avoir le même résultat que sur la vidéo.Comme vous …
00:00:00 :Dans cette partie, on va créer notre classe qui va nous permettre de créer nos listes,que ce soit des listes de courses, des listes de tâches, donc quoi que ce soit qui consisteen une liste.
00:00:09 :On a ici dans notre dossier, en plus du fichier constants.py, maintenant un fichier que j'aiappelé lib.py qui va contenir notre classe.Donc on va la créer, on va l'appeler tout simplement liste, donc là, veuillez bienfaire attention, j'ai mis un E déjà ici, puisque liste comme ceci c'est un mot réservé
00:00:27 :et j'ai mis une majuscule en plus, puisque les classes, si on veut suivre la conventionpep8, donc pour bien nommer les choses en Python, ce n'est pas une obligation, maissi on veut bien faire les choses, eh bien on commence le nom de notre classe par unemajuscule.
00:00:39 :Donc je vais ensuite mettre ici, entre parenthèses, donc entre les parenthèses de ma classe,la liste, cette fois-ci, donc sans le E et en minuscules, qui va me permettre de fairehériter ma classe de la classe liste.
00:00:51 :Donc comme ça, en fait, ça va me permettre d'utiliser tout ce qui est contenu dans laclasse liste.Donc quand on fait des append, par exemple, des extend, remove, eh bien tout ça, je vaispouvoir l'utiliser à l'intérieur de ma classe liste, puisque j'hérite de cetteclasse.
00:01:07 :Donc ça, il faut le mettre à l'intérieur des parenthèses ici, on reviendra plus endétail sur l'héritage dans d'autres parties, pour l'instant, sachez juste que ça nouspermet d'utiliser donc tout ce qui est associé à notre classe liste.
00:01:17 :On va voir tout de suite tout ce qu'on peut faire avec ça.On a ensuite init, donc la méthode init, que l'on a pratiquement dans toutes les classesque l'on fait.
00:01:25 :Et le mot self ici, qui me permet donc de référer à mon instance, puisque dans toutesles méthodes qu'on va mettre à l'intérieur de notre classe, eh bien il faut qu'on aitce self au début, donc il faut qu'on ait ce premier paramètre ici, qui va référerà notre instance.
00:01:39 :On va passer un deuxième paramètre ici, qui va être le nom de notre liste, et cenom, on va le récupérer donc directement comme attribut de notre instance, donc onva faire self.nom égale nom.
00:01:50 :Donc pour l'instant, je laisse ça et on va faire un petit exemple directement dans l'interpréteurPython pour vous montrer ce qu'on peut faire avec une classe aussi simple que celle-ci.
00:01:59 :Donc je sauvegarde mon script, alors là, vous avez deux façons de faire.Soit on peut faire la fameuse syntaxe comme ceci, donc if name égale égale à main commececi, qui va me permettre en fait avec cette structure conditionnelle d'exécuter du codeuniquement si j'exécute directement le fichier et non pas si je l'importe.
00:02:18 :Donc là par exemple, si je mets print et que je fais un print hello et que je lancemon script en cliquant sur la petite flèche ici, je vais bien avoir hello qui s'affiche.
00:02:26 :Par contre, si je ferme le terminal, je peux faire un clic droit ici, donc clic droit surmon dossier, faire open in terminal, ça, ça va avoir pour effet d'ouvrir un terminalet d'ouvrir directement mon dossier, donc de me mettre au bon endroit pour que je puisseimporter cette librairie.
00:02:41 :Puisque comme je vous disais, si j'ouvre un interpréteur Python en faisant Python 3.7,il faut que je sois dans le bon dossier, donc le dossier qui contient mes fichiers pourque je puisse les importer.
00:02:50 :Donc j'appuie sur entrée, je rentre dans un interpréteur Python et si cette fois-cije fais import lib, que j'appuie sur entrée, là vous voyez que le hello ne s'affiche pas.
00:03:00 :Et donc ça c'est parce que j'ai mis cette structure conditionnelle ici qui me permetde n'exécuter le code ici à l'intérieur de cette structure conditionnelle que sije lance directement le fichier.
00:03:09 :Donc là je vais sortir, je vais faire un exit pour sortir de mon interpréteur Pythonet si cette fois-ci je fais Python 3.7 lib.py pour exécuter mon fichier, là vous voyez
00:03:19 :qu'en exécutant directement le fichier, j'ai bien un hello qui s'affiche.Donc soit on met cette structure comme ça pour pouvoir faire directement écrire ducode à l'intérieur de cette structure conditionnelle, soit on lance un interpréteur Python, doncPython 3.7, et après ici on peut dire from lib import list, donc pour importer notre
00:03:37 :classe.Et là je vais pouvoir par exemple faire une instance de ma classe, donc je fais uneinstance ici en faisant tout simplement une affectation simple dans une variable queje vais appeler l, donc je crée une instance de ma liste et il va falloir que je lui donne
00:03:49 :un nom.Si je fais ça pour l'instant je vais avoir une erreur puisque là notre classe elle attendun argument ici que l'on va envoyer à ce paramètre nom et pour l'instant on n'ena pas spécifié.
00:03:59 :Donc là on va mettre tout simplement une chaîne de caractère qui va s'appeler course,j'appuie sur entrée et là j'ai bien ma liste qui est créée.
00:04:05 :Pour l'instant notre liste est vide.Alors là vous voyez que quand je fais l et que j'appuie sur entrée, ou si je faisun print de mon instance, j'ai cette liste vide qui apparaît.
00:04:14 :Donc ça nous indique bien en fait que cette classe qu'on a créée et bien c'est uneliste.C'est une liste vide pour l'instant puisqu'on n'a rien mis dedans, mais le fait d'hériterde notre classe liste ici ça nous permet d'avoir exactement le même fonctionnementque ce qu'on aurait si je faisais par exemple une liste comme ceci avec des crochets.
00:04:30 :Là encore si je fais a j'aurai une liste qui est vide puisque là je viens de créerune liste donc c'est la même chose, c'est à dire que je vais pouvoir faire l.append
00:04:38 :par exemple pour ajouter des choses dans ma liste.Donc là j'utilise la méthode append et vous voyez que je n'ai pas d'erreur.Même si on n'a pas défini cette méthode append ici dans notre classe, on y a accèspuisqu'on hérite de cette classe liste.
00:04:50 :Si je refais un print de l vous voyez que cette fois-ci j'ai bien le mot test qui està l'intérieur de ma liste.Si je fais l.remove par exemple pour enlever ce mot, et bien là encore je n'ai pas d'erreur
00:05:00 :et j'ai bien réussi à enlever ce mot de ma liste.Donc ça c'est la syntaxe de base, donc on a notre liste, notre classe ici, qui héritede la liste, qui va nous permettre d'utiliser toutes les méthodes qui sont disponiblessur les listes Python de base, et on a notre méthode ici qui nous permet de définir un
00:05:16 :attribut nom qui va appartenir à notre instance.Donc là si je veux afficher le nom de ma liste je peux faire l.nom, j'appuie sur entrée
00:05:23 :et là on a bien la chaîne de caractère que l'on avait renseignée quand on a créénotre instance ici, quand on a dit liste course, et bien cette chaîne de caractère a étéenvoyée automatiquement à notre paramètre nom ici et il a été récupéré dans self.nom.
00:05:36 :Self on se souvient, donc si vous vous rappelez la partie sur self ça fait pas beaucoup desens au début pour les gens qui font du Python à quoi correspond ce self, mais self c'estvraiment notre instance, donc dans ce cas-ci c'est l, l ici ça correspond à self, donc
00:05:50 :en fait quand on a créé notre instance, quand on a fait l ici égale à liste, etbien en fait le self ça correspond à notre l, donc c'est pour ça qu'après quand onfait l.nom et bien on a bien notre chaîne de caractère ici qui est affichée, puisque
00:06:03 :quand on est passé à travers init, c'est comme si le self ici on l'avait remplacépar l et qu'on avait dit que l.nom est égal à non, et non c'était quoi, et bien c'est
00:06:11 :la chaîne de caractère que l'on a passé lors de l'initialisation de notre classe ici.Donc voilà pour cette structure simple, c'est une partie un peu longue avec beaucoup determes, n'hésitez pas à revenir dessus, c'est vraiment la base de notre classe etvous allez voir qu'après on va rajouter d'autres méthodes dans les prochaines parties
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.