Session du 18 juillet 2024 à 20h00
Pratique & Live Coding
Structures de Données
Bases du Langage
Programmation Orientée Objet (POO)
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Questions Python, Django et e‑commerce
Échange interactif autour de Django, des projets mensuels et des solutions e‑commerce comme Shopify. Idéal pour clarifier vos choix techniques et mieux structurer votre apprentissage.
00:00:00 :Voilà, on est tout bon. Ok, alors avant de commencer du coup, est-ce qu'il y en a qui ont des questions,des exercices qu'ils veulent aborder en particulier sur certains sujets ?
00:00:10 :Non, moi, je suis comme d'habitude là en ce moment, je suis en train de refaire,donc c'est comme d'hab quoi.Ouais, ok. Et s'il y a Wilfried, il n'y a pas d'exercice ou de questions en particulier ?
00:00:27 :Bon, pour moi, non. Pour moi, sinon, pour l'instant, comme je suis déjà la formation deDjango là, donc là, je ne fais pas trop d'exercices quoi.
00:00:44 :Ok, ok.Seulement, j'ai une question, Kevin, pour le projet du Mansuel.Oui, alors du coup, j'ai eu pas mal de, en ce moment, je suis un peu dans le rush des documentsadministratifs pour une location, donc je n'ai pas eu trop le temps de le terminer.
00:01:01 :Mais en gros, ce sera à dispo normalement, ce week-end, avant que je parte en une semaine,je devrais vous poster ça sur le site. Il faut jouer avec Thibault, comment je fais pour vous
00:01:13 :poster ça. Mais j'ai fini l'énoncé, etc. Il faut juste que je vérifie que tout marche bien,etc. pour vous et que ce ne soit pas trop dur. Mais en gros, il est quasiment terminé à 95%.
00:01:24 :Ok, super.On peut poser n'importe quel type de question qui a un lien avec le développement, ça ?Oui, même des sujets de discussion classique, même sur la CPR, peu importe.
00:01:36 :Parce que j'aimerais bien savoir, pour les sites e-commerce, c'est mieux de le faire avec desboutiques Shopify déjà faits ?Oui, en général, la plupart des sites e-commerce, surtout Dropshipping,ça utilise Shopify. Et après, pas que le Dropshipping, je connais une entreprise de
00:02:05 :quelqu'un qui utilise aussi, juste parce que c'est plus facile pour sa gestion, etc. et qu'il n'avaitpas envie de s'embêter pour la gestion des stocks, etc. Il a fait juste une boutique Shopify pour
00:02:16 :vendre ses trucs à lui et il vend des claviers, donc ça n'a aucun rapport avec le Dropshipping.Et Shopify fait très bien l'affaire, parce que ça t'offre des templates où tu as juste à faireun site simplement, ça t'offre tout le module de paiement sans que tu aies trop à le gérer,
00:02:31 :tu as juste à connecter à ton Paypal ou à Stripe. Après, tu peux aussi directement éditer lesconditions générales d'utilisation, CGU, CGV, etc. facilement aussi. Ça offre plein d'outils clés en
00:02:44 :main quand tu ne t'y connais pas trop. Et c'est assez sécurisé aussi de base, donc si tu n'as pasenvie de te prendre trop la tête, ça fait très bien le travail pour beaucoup de choses. D'accord, merci.
00:02:55 :Et je voulais te remercier aussi, parce que le fait de faire des exercices comme ça, ça m'aidebeaucoup. Bah écoute, avec plaisir, avec plaisir, avec plaisir. Parce que moi également, je vais faire
00:03:08 :tout ça, mais j'aimerais bien me préparer. J'ai fait quand même les exos, disons tous les exercices,je les ai déjà faits. Même les projets, j'ai fait 4-5 projets comme ça. Là, je viens juste de terminer
00:03:23 :le site e-commerce avec Django, Stripe, donc ça m'a beaucoup aidé. Mais avec les projetssur le mois mensuel, même si c'est 1, 2, 3, je pense que c'est prêt pour me lancer. T'as fait les anciens déjà?
00:03:37 :Pardon? T'as déjà fait les anciens projets mensuels? Non, non, non. Bon, quand j'étais venu, je ne pense pas que c'était...Bon, en ce moment, j'étais un peu nouveau encore, donc je ne pouvais pas l'intégrer directement. Après, ils sont encore
00:03:52 :disponibles, tu peux quand même les faire, même si tu ne peux pas déposer. Je ne sais pas si c'estencore ouvert à déposer ta solution, mais en soi, ils sont toujours disponibles. T'as accès qu'on
00:04:01 :s'appelle à les lancer, etc. Et tu peux très bien le faire dans ton coin pour juste t'entraîner.D'accord, c'est une bonne idée. C'est une bonne idée, t'en as 3 à dispo. Après, ça dépend de ce que tu veux faire.
00:04:13 :Par exemple, là, si tu fais du Django, t'as un truc de gestion de forum qui peut être intéressant,ou t'as un marketplace d'échange de vêtements, pareil, c'est du Django aussi. Ou t'as un SES de
00:04:23 :compression d'images, ou ça doit être du web aussi. Là, c'est avec la bibliothèque pile à eau.Mais après, pareil, tu peux très bien le faire à ta sauce et en faire une interface webavec Django. Il y en a un qui a fait ça, je crois. Les 3 en plus, les projets mensuels, tu peux les faire
00:04:38 :en version web, donc ça peut être intéressant. D'accord, merci. Pas de soucis. Ok.C'est l'exercice que j'ai là sous la main. S'il n'y a pas d'autres questions, ça peut être intéressant à faire.
00:04:54 :Je vais vous faire un petit partage d'écran.Ok. Tout le monde voit ? Alors du coup, j'ai pris un truc. On va revoir un petit peu les dates,
00:05:11 :donc ça va être l'occasion de revoir un petit peu le module date-time. Vraiment tout simple.Et après, un peu de liste aussi, pareil. Toujours un petit peu de manipulation de liste avec du
00:05:22 :slicing comme on a fait lundi. Ça ne fait pas de mal. C'est vraiment deux exercices qui vont prendre5 minutes, histoire d'en revoir un petit peu les trucs de base. Et après, on verra s'il y en a
00:05:32 :d'autres qui peuvent vous intéresser. Ok ? Du coup, dans cet exercice, on nous demande de récupérerla date d'aujourd'hui dans une variable. La variable s'appelle en date-today. La première
00:05:42 :chose, on va nommer notre variable date-today. Tu peux zoomer un peu. Ok, c'est mieux. Et on doitformater la date d'une manière spécifique en ayant deux chiffres pour le jour, le nom du moiscomplet et l'année au complet. Donc sous ce format là. Donc 10 avril 2022, 27 octobre 1993 et 1er
00:06:08 :janvier 2021. Donc pour ça, on va utiliser le module date-time. Est-ce qu'il y en a qui ont déjàutilisé le module ou pas du tout ? Oui, j'ai utilisé, mais il y a un peu de temps. Sur les exos,
00:06:24 :d'après. Ok. Alors déjà, dans le module date-time, il y a beaucoup de choses. En l'occurrence,nous ce qui va nous intéresser, c'est la classe du même nom, donc from date-time et import date-time.
00:06:34 :C'est globalement ce qui permet de faire 90, voire 95% des choses de ce module. On va lesfaire avec la classe date-time. La classe date-time, après elle, elle a beaucoup de méthodes,
00:06:45 :donc qui nous intéressent plus ou moins. Est-ce que ça va les afficher si je fais ça ? Non, parce queje ne suis pas dans un niveau. Peut-être qu'avec Visual Studio Code, je pourrais vous les afficher.
00:06:55 :Ça peut être intéressant, parce qu'il y en a beaucoup. Et la même, la documentation, je crois, c'estfrdoc ou je crois, c'est beau le i. Voilà, normalement, je vous montre ça comme ça. Vous voyez, il y a
00:07:16 :beaucoup de choses. Donc, vous pouvez obtenir la date, vous pouvez obtenir la date avec unformat ISO, avec un timestamp directement, si vous entrez un timestamp. Vous pouvez également
00:07:32 :transformer. C'est une classe qui a énormément de méthodes pour choper des dates de façonplus ou moins différente. Donc là, en l'occurrence, on va utiliser deux méthodes qui vont nous
00:07:42 :intéresser. La première, c'est la méthode, c'est tout simple. Comme son nom l'indique, on veut ladate d'aujourd'hui, donc today en anglais. Donc la méthode s'appelle today, tout simplement. Si on
00:07:52 :fait datetime.today, ça va nous donner la date d'aujourd'hui, mais elle ne va pas être tout desuite affichée dans le format qu'on veut. Je vais vous l'afficher. Voyez qu'elle est affichée
00:08:02 :sous ce format-là. C'est le format un petit peu de base de datetime, sous le format année,mois, jour. Donc c'est anglais, c'est YYYY, MMDD. Vous avez donc l'heure, les minutes et les
00:08:20 :secondes, ainsi que les millisecondes, avec 6 caractères derrière. Nous derrière, on veut queça se transforme en ça, donc 18 avril 2024. Pour ça, on va utiliser une autre méthode de la classe
00:08:50 :datetime. Est-ce que, du coup, ceux qui ont monté ici, est-ce que tu connais, je crois qu'il y aque Wilfred qui en a fait ici, d'ailleurs, tu n'en as pas fait du tout datetime ? Je n'ai pas à
00:08:59 :souvenir. Ok. Wilfred, est-ce que tu connais un petit peu, du coup, les méthodes de datetime ? Non,non. Pas du tout ? Ouais. Ok. Bon, là déjà, je pense que c'est pas compliqué. La méthode today,
00:09:17 :voilà, comme ça vous la prenez si vous ne la connaissez pas, ça vous donne la date d'aujourd'hui,donc dans le format de base. Mais derrière, en fait, on peut réappliquer une autre méthode directement
00:09:30 :à ça. Cette méthode-là, c'est la méthode strftime. Et là, on va préciser le format de notre date.Est-ce que, donc là c'est juste du format de date classique, est-ce que vous connaissez unpetit peu vos formats de date ? C'est-à-dire ? C'est bien souvent avec des pourcentages pour
00:09:56 :donner un indice. Je ne sais pas si elle le met là. Je pense qu'il y a un site de documentationlà qui est un peu clair. Exactement. Voilà. J'ai donné un peu la réponse, mais c'était en LED.
00:10:07 :Mais voilà, donc on utilise la méthode today pour avoir la date d'aujourd'hui. Et après,pour mettre en forme la date, on utilise strftime. Et vous avez donc ici un truc d'aide. Et donc,
00:10:17 :avec ça, je vous l'envoyais. Et puis vous allez essayer de me dire comment on fait pour avoir lerésultat qu'on veut. Ah oui, c'est ça. J'ai souvenir avec Thibault, il l'avait fait dans
00:10:26 :l'information avec pourcentage A. C'est vrai, il y a même pourcentage avec A majuscule pour voirs'il y a des trucs comme ça avec A majuscule. Du coup, je rappelle, nous ce qu'on veut c'est le
00:10:44 :chiffre, c'est la journée, le mois avec une majuscule et l'année en chiffres. Comment jefais ça? Logiquement, il y a trois pourcentages. Oui. Et ils ont une certaine logique. On va
00:11:04 :voir le pourcentage M, je pense. Pourcentage M? Oui. En premier ou en deuxième? Oui, en premier.En premier, ok. Je vais mettre les deux propositions. Je vais commencer avec Wilfried et après je vais
00:11:26 :écouter celle de Stéphane. Pourcentage D d'abord. Donc t'as changé? Oui, l'autre c'était le mois.Donc toi tu mets comment du coup Sylla? Vas-y, je te réécoute, on va rechanger. Pourcentage D.
00:11:43 :Pourcentage B, B majuscule. Ok. Et pourcentage Y majuscule. Ok. Et Wilfried t'aurais fait comment?C'était toi qui parlait pourcentage M? Non, c'était moi. J'avais dit pourcentage D. Je fais la même
00:12:07 :chose. Pourcentage D, pourcentage B majuscule et pourcentage Y majuscule. Qui c'est qui m'a parlépourcentage M alors? Oui, c'était moi au début. Ok. Pourcentage M du coup, si c'est en minuscule,
00:12:20 :c'est là en fait en chiffre. Et pas du coup en écrit comme ça. Et le M majuscule du coup c'estles minutes. Ok. Donc ça vous voyez en effet, normalement c'est la bonne proposition. Voilà.
00:12:34 :Et du coup vous avez en fait votre format comme ça. Mais par exemple, je sais pas si moi j'auraisvoulu faire quelque chose du genre remettre dans l'ordre un peu ça. J'aurais pu me contenter par
00:12:47 :exemple de le mettre comme ça. Et du coup je vais l'afficher. On peut faire un truc de ce style là.Et on adapte un peu à la version classique de chez nous. Voilà. Ok. Normalement introduction
00:13:07 :toute simple. C'est bon pour ça ou est-ce qu'il y a des questions?Excusez-moi. Ok. Prochain exercice du coup. Donc là on va revoir un petit peu le slicing pour
00:13:29 :récupérer les parties d'une chaîne de caractères. Donc dans le doc, on veut récupérer les troispremiers caractères. Donc la chaîne doc de docstring. Ici. Donc déjà je vais vous pré-répliquer la
00:13:43 :chose. Donc dans le langage, on veut récupérer le nom. Donc les quatre derniers caractères. Et danslettres, on veut récupérer la première lettre de la chaîne de caractères contenue ici. On va
00:14:00 :commencer par le... Qui veut se commencer avec celui-là? Moi je vais essayer. Vas-y. Donc doc,il faut récupérer juste doc, c'est ça? Doc, il faut récupérer juste doc. Ça fait. C'était...
00:14:19 :Comment ça s'appelle? C'est le module... Comment ça s'appelle? En plus j'ai vu il n'y a pas longtempspour récupérer les modules dans les chaînes de caractères. Il n'y a pas de module là. C'est
00:14:38 :juste du slicing. Ah c'est juste du slicing. Autant pour moi. Je croyais que c'était avecle module. On fait 0, 1, 2. 0. On fait 3. 3. Ouais. Deux petits points. Et encore deux petits
00:15:02 :points. Comme ça? Ouais. Non? Je ne sais pas ce que ça fait. Une erreur? On va mettre deux petitspoints comme ça derrière le 3. On met 0 alors d'abord pour commencer. Et? Deux petits points
00:15:28 :et ensuite on met 3. Non plus. Non plus? Je ne vois pas. Ah non attends. C'est juste que endessous. Autant pour moi. Je vais quand même te réafficher. Enfin si ça va être valide du coup
00:15:45 :autant pour moi. Il faut te le réafficher mais ça ne va pas donner la bonne réponse. Voilà. En faitça récupère ce que tu ne veux pas. Ça récupère ce que je ne veux pas. Ah ok. En fait ça commence
00:15:59 :à partir du troisième jusqu'à la fin. Et je te remets du coup la deuxième proposition que tu asfait. Ça à ça, ça marche. Mais tu peux le faire légèrement plus simplement. On l'a vu lundi
00:16:13 :normalement en plus. Deux petits points et 3? De quoi? Redis-moi. Deux petits points et 3? Non?Non. Lundi on l'a vu. Je ne sais plus. En fait tu peux juste te contenter d'enlever le 0 parce
00:16:34 :qu'en gros si tu précises pas, par défaut c'est 0. C'est vrai. Tu vois imagine on t'aurait voulugenre OCS. Là tu aurais dû préciser parce que par défaut ça commence à 0. Sauf que quand tu veux
00:16:46 :commencer du début, de même façon que quand tu commences à la fin, tu peux te contenter de mettredeux petits points et en fait là c'est sous-entendu qu'il y a un 0 au début. Tu vois? Voilà. Ah merci
00:16:58 :super. Ensuite qui veut faire pour le deuxième? Là on va commencer du début. On met rien d'abord.On met rien, deux points, un moins un. De rien, un moins un comme ça? Ouais.
00:17:22 :Raté. En fait là en faisant ça, tu enlèves juste la dernière lettre. C'est ça. Est-ce que tu asune idée? C'est de la même manière que ça mais à l'inverse. On va dire. Donc là on met rien,
00:18:00 :deux points, à la fin on s'en met rien. Comme ça? Oui. Ça prend tout. Tu n'as pas mis du tout de rien.C'est tout au début, tout à la fin. Donc c'est tout. Mais c'est bon puisque c'est le piton qu'on
00:18:21 :souhaite récupérer. Non, on veut juste récupérer le ton. Ah ok. Juste récupérer les 4 dernièreslettres. Essaye de le faire en deux étapes. La façon facile où tu décortiques de A à Z et
00:18:47 :d'après moi je t'expliquerai la façon raccourcie. Essaye de la faire de la façon un peu bête etméchante. C'est-à-dire de tel caractère à tel caractère. Ok, donc on va commencer de moins un.
00:18:59 :Pourquoi de moins un? Oui, là on commence d'ici moins un. Pourquoi tu veux commencer de moins un?Pourquoi tu veux commencer par la fin? Alors je te dis façon bête et méchante. Tu pars de tel
00:19:13 :caractère pour aller à tel caractère. D'accord. 0, 0, 1, 0, 1. Donc on va commencer de 2 à moins un.A moins un? Ou bien non. De 2 pour finir. Voilà, on ne met rien à la fin. C'est ça. On ne met rien à la fin.
00:19:39 :Là, ok. Parce que du coup, la façon bête et méchante ça aurait été de dire, donc là c'est2, 3, 4, 5, 6, pardon. La façon bête et méchante ça aurait été de faire ça et du coup moi je
00:19:54 :t'aurais dit de la même façon où là tu n'as pas besoin de mettre le zéro, là en fait puisqueça va jusqu'à la fin tu n'as pas besoin de préciser la fin et tu peux juste te contenter de faire ça.
00:20:02 :Et du coup, le dernier, je l'ai fait sans faire exprès. J'avais juste mis des zéros pour ne pasqu'il y ait d'erreur, mais en soit c'est ça la bonne réponse. Quand vous voulez récupérer la
00:20:19 :première lettre, vous mettez juste 0. Après c'était le plus facile, il n'y avait pas grandintérêt à le faire. Puisqu'en fait on ne veut que le premier, c'est le premier caractère donc
00:20:28 :1, 10, 0 tout simplement. Est-ce que c'est clair pour ça ? On continue à réviser un petit peu lespacing. Est-ce qu'il y a d'autres exercices que vous voulez faire ? N'hésitez pas à m'envoyer un
00:20:47 :lien, on peut en faire encore un ou deux si vous voulez.C'est ce qu'il a demandé.Il y en a pas mal qu'on a fait. T'es un niveau plutôt avancé ou débutant en PO ?
00:21:31 :Déjà c'est un concept un peu avancé la PO, mais est-ce que tu es vraiment au début de la PO ouest-ce que tu en as fait un petit peu comme Wilfred ? J'ai fini la leçon. On peut commencer par
00:21:49 :créer un autre début de classe. Après on peut cliquer sur notre première classe et voir.On va faire ça. C'est vraiment juste débutant PO comme ça ça fera une introduction aussi pour les
00:22:23 :autres qui n'en ont pas fait. Première chose, on veut créer un attribut de classe qui s'appelleprix. Il doit appartenir à cette classe livre et contenir le nombre décimal 9,99. Tu mettrais ça où ?
00:22:48 :Dans ton de chasseur.Si les autres vous avez une idée, vous pouvez essayer de dire aussi si vous voulez.Si j'ai un souvenir, on fait un def, on définit une variable.
00:23:14 :Ok, je l'ai définie.On fait def prix.Def, c'est pour une fonction.Je me rappelle qu'on faisait des def dans les classes, mais il faut que je revérifie encore.
00:23:41 :Pour ta fonction init, qui permet d'initialiser tes attributs.C'est un attribut de classe, ce n'est pas un attribut d'objet.Je pense qu'il faut juste déclarer prix au niveau de la classe.
00:24:10 :Mon micro était fermé en fait.On fait prix égale à 9,99.Oui, tout simplement.Je pense que tu l'avais aussi du coup Sylla, de ce que tu avais commencé.
00:24:25 :En fait, il faut faire la différence entre attributs de classe et attributs d'objet.Là, prix est un attribut de classe.Mais maintenant, si je fais ma méthode init, que vous commencez un peu à connaître, etque je mets par exemple prix, je fais self.prix égale prix, ça c'est un attribut d'objet.
00:24:55 :Donc il est fait partie de ma classe.Mais quand je vais créer un objet de type livre, donc par exemple, quand je fais monlivre égale livre, et je ne fais pas son prix, du coup ça va être 9,99, là il auradonc une variable de classe, un attribut d'objet, donc self.prix, qui sera accessible dans les
00:25:19 :autres méthodes, via du coup self.prix, qui contiendra 9,99.Mais là, le fait de le définir au-dessus et pas dans init, c'est un attribut de classe.
00:25:29 :Et donc l'attribut de classe, on ne l'utilise pas de la même manière.Si vous l'utilisez par exemple là, il faut préciser livre.prix.Ok ? Petite révision, tant qu'on y est.
00:25:40 :Ok.Donc maintenant qu'on a vu comment faire l'attribut de classe classique, on va voirdu coup comment créer une classe complète.Qui veut s'y jeter ? Allo ? Ça va reprendre exactement ce que je viens de dire à l'instant.
00:25:56 :Donc là on va créer une classe pour représenter un livre.Cette classe, elle devrait avoir trois attributs.Donc là c'est les attributs d'objet.Je précise comme ça, vous ne vous trompez pas.
00:26:06 :Nom, nombre de pages et prix.Ensuite vous devriez créer deux instances.On va pas utiliser cet exercice-là parce qu'on va le voir là.Une première instance livre qui aura ces paramètres-là, une deuxième instance livrequi aura ces paramètres-là.
00:26:20 :Qui veut s'y jeter ? Vas-y Naïr.On peut l'appeler la classe comme on veut ? Oui, bon là je pense que la logique…Il n'y a pas de… Ils ne nous disent pas.
00:26:33 :Déjà, classe.Là tu vois c'est marqué là, donc livre, je pense.Ah pardon.Bah classe livre.Qu'est-ce que j'ai fait ? Classe livre, ok.Deux petits points.
00:26:43 :Oui.Ensuite on met les attributs nom.Donc comment je fais ça ?Bah mettre la variable nom.Ok.Égal et on met deux guillemets mais rien dedans.
00:27:00 :On n'a pas de chose dedans.Ensuite, nombre de pages égal deux guillemets rien.Prix pareil, égal deux guillemets rien.Et là les instances on sort de truc je crois.
00:27:19 :On sort de ça, ok.J'ai oublié là, j'ai un trou de mémoire.C'est de la même manière que je l'ai fait juste avant quand j'ai défini que mon livreet que le livre le prix était 9.99.
00:27:33 :Donc avec la def ?Oui.On fait def ?Non pas avec la def justement.Ça c'est pas l'instance.L'instance c'était quand j'étais sorti, quand j'avais fait ça.
00:27:42 :Tu sais ?Et quelque chose derrière.C'est de cette manière là.Je laisse Wilfrid au pire parce que j'ai un trou de mémoire.Vas-y Wilfrid.
00:27:51 :Pas pour au-dessus, juste pour l'instance, pour l'instant.Moi je vais bientôt recommencer.On recommencera après mais je veux qu'ils comprennent les erreurs au-dessus après.Mais déjà rien que pour l'instance, comment tu fais ?
00:28:06 :Bon, je réfléchis un instant.Vas-y Sida.Livre mp ?D'abord je crée, je mets le nom, je m'appelle Livre mp.C'est HP pour Harry Potter.
00:28:22 :Est égal ?Oui.Livre ?Oui.Mais là c'est des attributs de classe.Mais justement, fais juste l'instance comme s'il n'y avait pas de soucis.
00:28:36 :Ok.En parenthèse ?Oui.Après nom est égal à ?Nom est égal à Harry Potter.Voilà.Voilà exactement.Voilà comment on définit une instance WilfridDNair.
00:28:53 :Vous créez donc une variable, vous l'appelez comme vous voulez.Bon là c'est précisé LivreHP.Elle est égale à votre classe.Ça vous crée un objet.
00:29:01 :Et entre parenthèses, vous pouvez spécifier ça.Vous pouvez spécifier des attributs d'objet.Sauf que là, vous n'avez pas fait des attributs d'objet.J'ai précisé tout à l'heure que ça, ça devait être des attributs d'objet.
00:29:17 :Et c'est pour ça qu'avec l'exercice d'avant, je vous ai expliqué la différence entre attributs de classe et attributs d'objet.Moi j'ai des appels comme ça, pour qu'on puisse faire la différence.
00:29:24 :Là en fait, t'as fait des attributs de classe.Et du coup c'est des attributs qu'on ne peut pas personnaliser de cette manière là.Là en fait, moi derrière, je ne peux pas faire par exemple, print.
00:29:34 :Si je fais print LivreHP.nom, ça ne va pas marcher.Parce que ça va me dire que Livre ne prend aucun argument.Puisque je n'ai pas fait fonction init précisant mes attributs d'objet.
00:29:47 :Est-ce que tu comprends là où je veux en venir ?Ah il fallait que tu fasses une définition d'objet.C'est des attributs de classe.Tout ce qu'il y a en dessous de ton livre, mais qui n'est pas dans ta fonction init.
00:30:00 :Cette fonction là, que je t'ai montré juste avant.C'est des attributs de classe.Donc c'est des variables un petit peu qui ne vont pas changer.
00:30:08 :Ou alors que tu vas changer derrière plus tard.Mais ce n'est pas des variables que tu vas pouvoir définir ici.Quand tu vas créer ton objet.
00:30:15 :Ce n'est pas des attributs d'objet, c'est des attributs de classe tout simplement.Attends pour moi.Est-ce que tu saurais nous le refaire ici ?Arrobase self ?
00:30:25 :Arrobase ?Arrobase, pardon.Entre parenthèses, self.Ensuite on met nom, nombre de pages, prix.Je vais virer ça.Ensuite ?Deux petits points.Ensuite on définit.
00:30:52 :Comment je le définis ?On met livre.self.Entre parenthèses.Je me trompe ou pas ?Vas-y Wilfried.Là on fera self.nom égale à nom.Tu vois ?
00:31:31 :C'est ce que j'avais fait l'exercice avant.Ensuite ?Ensuite self.nom de page égale à nom de page.Et self.prix égale à prix.Nickel.En fait, je ne sais pas trop où t'as pu en venir.
00:31:52 :Je pense que t'as essayé un truc avec nom de classe et le self.Ici tu n'utilises pas de parenthèses.Les parenthèses c'est pour créer ton instance derrière.
00:32:00 :Sinon c'est pour tes attributs.Mais sinon ici tu dois utiliser le self.Self c'est pour dire que c'est à soi.C'est à la classe, ça lui appartient.
00:32:11 :Et ça appartiendra à l'objet qui hérite de la classe.Là par exemple, quand je crée mon objet, il va hériter de ces paramètres là.Et donc son nom va être égal au nom qu'on lui fournit.
00:32:23 :En fait, ton attribut d'objet de nom va contenir ce que tu lui fournis ici comme nom.Et ici le nom qu'on lui fournit c'est Harry Potter.
00:32:31 :Et ce qui fait que maintenant, quand je fais ça,et quand j'affiche le self.nom, donc quand je fais livre.hp.nom,il m'affiche Harry Potter, ce que je lui ai précisé ici.
00:32:42 :Est-ce que c'est mieux comme ça Naïr ?Merci. Là je viens de mieux comprendre.En fait, ça fait quelques temps que j'ai fait les programmations en tant qu'objet,mais j'ai préféré regarder.
00:32:59 :Et là, comme je refais encore une fois le parcours,comme ça je vais mieux m'imprégner.Comme ça, ça va mieux rentrer dans ma tête.Mais en plus de ça, avec les mentorats, quand on fait les exercices,ça m'aide, ça me permet de mieux visualiser les choses.
00:33:11 :Nickel, écoute.On fait une petite synthèse, et puis après on s'arrêtera là tranquillement.Pour définir une classe, on utilise le mot clé classe,on la définit toujours avec une majuscule en première lettre.
00:33:25 :Les attributs de classe, on les définit directement ici,comme ça, avec le nom que vous voulez.Attribut classe égale ce que vous voulez, moi je vais mettre non.
00:33:35 :Pour vos attributs d'objet, c'est-à-dire que les attributs sont accessiblesdans les autres méthodes de classe, et quand vous définissez une instance d'objet,c'est avec la méthode init, vous avez toujours le paramètre self,et les différents attributs que vous voulez lui donner.
00:33:53 :Il peut y en avoir aucun.Ici, on veut que votre livre ait un nom, un nombre de pages, et un prix.Derrière, pour le définir, on définit que son paramètre à lui,donc self, c'est à soi-même, son propre nom,va être égal au nom qu'on lui donne en paramètre, comme une fonction classique.
00:34:11 :Une fonction classique, vous avez vos paramètres,si vous mettez le paramètre nom ici, vous pouvez définir le nom dans votre fonction.C'est la même chose en fait.
00:34:19 :Ici, vous définissez le nom de la classe, du paramètre de classe,qui va être égal au nom que vous lui fournissez.Et ça, vous le faites pour les trois.
00:34:27 :Et derrière, pour définir une instance, pour créer un objet de la classe livre,vous créez une variable, vous lui donnez le nom que vous voulez,cette variable-là va être égale au nom de votre classe,entre parenthèses, tous les attributs d'objet que vous avez décidé d'écrire ici.
00:34:41 :Donc là, on peut préciser Harry Potter pour le nom du livre,300 pour le nombre de pages, et 1099 pour le prix.Et derrière, on peut les appeler de cette manière-là,sous la forme, votre nom de variable qui contient l'objet,point, le nom de l'attribut de l'objet que vous souhaitez consulter.
00:35:01 :Donc ça peut être nom, mais j'aurais pu très bien mettre nombre de pages,et ça m'aurait affiché 300.Est-ce que c'est clair pour ça ?
00:35:10 :Super. OK, nickel.Eh bien, écoutez, est-ce qu'il y a des questions avant de terminer tranquillement ?Vas-y, Sylvain.Oui, moi j'ai quelques questions.Au fait, surtout par exemple les boucles forts,je vois des fois des itérables avec deux itérables,donc des fois je dois comment les utiliser ou quand les utiliser,
00:35:39 :quand même avec une seule itération ça va, je sais, par une liste.Mais je vois aussi, si c'est un dictionnaire, il faut avoir deux itérables,la clé et la valeur.
00:35:49 :Mais est-ce que c'est juste tout ?Parce que je vois souvent avec Thibault,il utilise les itérations avec une boucle fort avec deux itérations, par exemple.
00:35:59 :Je n'ai pas tout compris à ta question.Je mets un fort, je mets deux itérables,et je mets mon objet qui est devant, soit c'est un dictionnaire ou un type,je ne sais pas.
00:36:16 :En fait, tu mets deux itérables quand tu as une structure de donnéesqui peut te donner deux choses à itérer.Par exemple, pour un dictionnaire, tu peux itérer sur le clé ou sur la valeur.
00:36:34 :Donc tu peux mettre dicta, tu vois.Pareil, sur un tuple, tu dois pouvoir le faire aussi normalement.Mais par exemple, sur une liste, de test, tu ne peux pas.
00:36:46 :Au niveau du dictionnaire, par exemple, si je mets juste une seule itération,ça va marcher sur le dictionnaire ou ça ne va pas marcher ?
00:36:57 :Ça peut marcher aussi, oui.La syntaxe va changer, mais tu peux faire une itérationet tu vas récupérer que la clé ou alors que la valeur.
00:37:06 :Je pense qu'il y a pas mal d'exercices sur les dictionnaires sur le sitequi doivent afficher ces différents cas-là.Sinon, on pourra voir ça au prochain Montaura avec plaisir.
00:37:22 :D'accord, ça marche.Je me note ça.On va récupérer la syntaxe.Pas d'autres questions ?C'est bon pour moi, en tout cas.C'est bon pour moi ?
00:37:56 :Ouais.Est-ce que j'avais planifié un autre Montaura pour cette semaine ?C'est le dernier Montaura avant que je revienne, donc le 29.On ne va pas se voir pendant une petite semaine et demie.
00:38:13 :Je suis disponible par message privé Discord s'il y a besoin,mais je ne suis pas là du tout la semaine prochaine à partir de dimanche.
Aucune occurrence trouvée pour « ».
00:00:51
Question sur le projet mensuel
00:01:36
Discussion sur les sites e-commerce et Shopify
00:03:11
Importance des exercices pratiques
00:03:59
État des projets en cours
00:04:45
Exercice sur les dates
00:05:39
Exercice pratique avec le module datetime
00:10:42
Discussion sur le slicing et manipulation de listes
00:21:58
Introduction à la POO
00:28:04
Création d'une classe et définition d'attributs
00:36:20
Question sur les itérations multiples dans les boucles for
00:37:52
Conclusion et planning des prochains mentorats