- 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, je vais tenter de vous expliquer vraiment ce qui se passe avec ce fameux self.Donc c'est quelque chose qu'il est assez important de comprendre une fois que vous commencez à utiliser Python.
00:00:10 :Néanmoins, si vous ne comprenez pas exactement ce qui se passe dans cette partie,vous pouvez continuer avec cette formation et à mettre le self au début de chaque méthodeet l'utiliser ensuite pour référer à vos instances sans vraiment comprendre précisément ce qu'il se passe en arrière-plan.
00:00:24 :Mais moi, je vais quand même essayer de vous l'expliquer de la façon la plus claire possible.Donc là, on a une classe voiture avec notre méthode init qui nous permet d'initialiser notre instance avec un nom de marque.
00:00:35 :Donc là, j'envoie une Lamborghini et je récupère ça dans self.marque.Donc self qui va être égal à mon instance de la voiture 01.J'ai une autre méthode qui s'appelle afficher marque qui contient elle aussi l'instance qu'on définit par selfet qui va printer la marque de la voiture.
00:00:51 :Donc je fais un print et je dis la voiture est une et j'utilise donc self.marque pour référer à la marque associée à mon instance.Donc jusque là, ça devrait être assez clair pour vous.
00:01:00 :Vous voyez que quand on utilise cette méthode, on l'utilise de la même façon que quand on veut récupérer un attribut.On appelle cette méthode avec les parenthèses comme quand on appelle une fonctionet on met le point ici pour signifier que cette méthode, on veut l'appeler sur cet objet.
00:01:15 :Vous voyez que par la même occasion, le self, on n'indique rien pour ce paramètre.On met les parenthèses ici et le self est automatiquement assigné à une valeur qui correspond à mon instance.
00:01:26 :Alors en fait, ce qui se passe et ce que Python nous cache avec cette façon de faire,c'est qu'il va utiliser notre classe, notre classe voiture avec la méthode afficher marque,sauf que lui, il va se charger automatiquement de passer l'instance à l'intérieur des parenthèses.
00:01:43 :Donc nous, si on veut l'utiliser directement avec notre classe voiture,il va falloir cette fois-ci passer à self l'instance qu'on veut afficher.Donc je vais mettre voiture01 ici.
00:01:52 :Et là, vous voyez que dans ce cas de figure, quand on passe directement par la classe,on est obligé de spécifier à quoi self va être égal.
00:02:00 :Donc là, il est égal à l'instance que je veux afficher.Et vous allez voir que cette ligne de code ici, voiture01.affichemarque,c'est exactement la même chose que voiture.affichemarque de voiture01.
00:02:12 :Donc j'exécute le script et vous allez voir qu'on va avoir exactement la même phrase qui s'affiche.Donc la voiture est une Lamborghini.Donc c'est juste en fait que cette façon de faire est un peu plus rapide et un peu plus claire,puisqu'on utilise directement la méthode sur l'instance qui nous intéresse,
00:02:27 :alors que là, il faut passer par la classe et à chaque fois passer l'instance en argument.Donc ce n'est pas forcément très efficace et on va préférer utiliser cette façon de faireen utilisant la méthode directement sur l'instance.
00:02:39 :Mais vous voyez qu'avec cette façon de faire, on comprend donc mieux pourquoi ici on a besoin du self,puisque lui, Python, en arrière-plan, en fait, il va passer par ça à chaque fois.
00:02:48 :Donc si on ne met pas self ici, on n'aura pas de paramètre ici pour récupérer l'instanceet donc on aura une erreur.Et c'est pour ça aussi que si j'envoie une autre donnée ici, si je mets par exemple vitesse,si on voulait afficher la vitesse à la place de la marque,
00:03:01 :et bien là, vous voyez que j'ai deux paramètres et que logiquement, Python,quand on va appeler cette méthode ici, il va également passer deux paramètres.
00:03:09 :Donc c'est de là en fait que vient l'erreur qu'on avait quand on n'avait pas mis le selfet que Python nous indiquait qu'on avait en fait envoyé deux argumentset qu'il n'y en avait qu'un de défini, donc c'était pour ça.
00:03:21 :Parce que si on ne met pas le self ici, on n'a qu'un seul paramètre de défini,donc le paramètre vitesse, mais pourtant quand Python va utiliser cette méthode,et bien il va envoyer lui deux arguments.
00:03:31 :Donc si on n'en a qu'un ici, ça ne marche pas.Et donc là encore, c'est pour ça qu'il faut mettre le self.Donc voilà pour l'explication du self.
00:03:38 :Si vous ne comprenez pas, comme je vous dis,vous pouvez quand même continuer à utiliser les classessans tout à fait comprendre ce qui se passe avec ce self,mais j'espère quand même que ça a démystifié ce qu'il se passe en arrière-planavec l'utilisation de la classe pour utiliser la méthode
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.