Session du 18 janvier 2025 à 16h00
TOSA & Certifications
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
Session de mentorat TOSA
En route vers le TOSA !
Nous allons directement travailler sur des questions qui sont tombées au TOSA :)
00:00:00 :Est-ce qu'il y en a qui sont en stress avec le TOSA déjà ?Est-ce qu'il y en a qui sont en stress avec le TOSAdejà ?
00:00:44 :Est-ce qu'il y en a qui sont en stress avec le TOSAdejà ?Est-ce qu'il y en a qui sont en stress avec le TOSAdejà ?
00:01:42 :Est-ce qu'il y en a qui sont en stress avec le TOSAdejà ?Est-ce que tout le monde voit mon écran ?Est-ce que tout le monde voit mon écran ?
00:02:22 :Voilà le genre de petites questions vachement amusantes qu'on peut avoir.Voilà le genre de petites questions vachement amusantes qu'on peut avoir.Je vous laisse regarder le code.
00:02:37 :Vous allez me dire si vous avez une idée d'avance.Je vous laisse réfléchir.Je vais le faire en même temps que vous.Pour m'interrompre, vous pouvez vous prenez la parole directement.
00:03:00 :Je ne veux pas forcément le chat.C'est l'énoncer ça ou c'est la solution ?Qu'est-ce qu'on voit à l'écran là ?J'ai oublié de vous l'énoncer du coup, excusez-moi.
00:03:14 :Le print ici, qu'est-ce que ça va afficher ?Vous avez quatre choix.Ah ok.Ok, c'est bon.On ne va pas se presser.Prenez le temps de réfléchir.
00:03:45 :On voit ta main levée à l'écrit.Elle dit quoi ?On voit ta main levée à l'écrit.Ça fait ça ?Ça fait ça ?
00:04:10 :Alors attends, excuse-moi, j'ai un truc en même temps.Je ne sais pas, vous pouvez me le dire.Quand vous avez terminé, vous n'avez qu'à vous l'écrire.
00:04:20 :Vous me dites au fur et à mesure.Je vais mettre le nombre de...Donc une personne répond ça, ok ?Moi je dis la 4.
00:04:35 :Moi je dis la 4.T'as dit quoi Christophe ?Moi je dis la 4.Ok.Ceux qui n'arrivent pas, vous le dites.Si vous galérez trop, il n'y a pas de problème.
00:04:58 :On passe à la réponse directe.Je peux laisser encore un peu de temps si vous voulez.Moi c'est bon, je n'en suis pas là.Moi je dirais la 1, mais je ne suis pas sûr.
00:05:10 :La 4, pardon.Ok.Je redis juste le code pour être sûr de ne pas me gourer.1, 1.Ok.On a fait un nouveau.Ok, c'est bon.
00:05:35 :Tout le monde a...1, 2, 3, oui, excusez-moi.Normalement c'est bon pour tout le monde ?Oui, je peux vous dire ça.Vous êtes prêts ?
00:05:46 :En fait, là ici on est sur un nombre entier.Et donc, on est sur un type immutable.Donc là ici, je fais deux instances.On va créer deux instances.
00:06:02 :Donc là ici on a un nombre entier, et là on a une liste.On crée du coup deux instances.Et quand je fais x.a, donc l'attribut a de x égale à 2,
00:06:14 :en fait on va créer ici un attribut d'instance.On va créer un nouvel attribut.Ok.Donc on a un nouvel attribut d'instance.Et quand vous allez faire x.b,
00:06:28 :et que vous allez vouloir ici directement taper dans la liste,vous allez modifier directement la liste.La liste c'est un type mutable.Donc quand on fait ça, en fait on va modifier la liste elle-même.
00:06:41 :Et comme b, en fait la liste elle est partagée,du coup on construit les instances.On va avoir, vous êtes prêts ?1, 2.Parce qu'en fait ici, là vous allez modifier directement la liste.
00:07:02 :Donc vous n'allez pas créer de nouvel attribut en fait,vous allez modifier vraiment la liste.Je ne sais pas où on pointe vers la liste.
00:07:10 :C'est où que ça sonne ? Ah Thibault.Oui mais pourquoi on parle de y alors que c'était écrit x ?Oui je sais.On ne comprend rien alors.
00:07:22 :C'est typiquement la question piège.Salut Thibault.C'est typiquement la question piège en fait.Ici on est sur une liste.On est sur un type mutable.
00:07:35 :En fait on va aller directement ici modifier la liste.On est sur un type muable.Donc en fait quand on va la modifier,on va la modifier du coup pour toutes les instances.
00:07:49 :C'est vraiment la liste elle-même qui est modifiée.Ah bon ? Pourquoi pas pour l'instance ?Parce que là on modifie la liste en fait directement.
00:08:00 :Si jamais par exemple j'avais fait un truc genre...Qu'est-ce qui pourrait bien...Alors si on avait modifié que l'instance,qu'est-ce que ça aurait été alors ?
00:08:13 :Si on avait modifié que l'instance.Par exemple je ne sais pas,au lieu d'aller modifier directement l'intérieur de la liste,on pourrait faire un truc genre...
00:08:24 :Tiens, notre espace c'est 1,2.Donc que ce soit parlant.Ici c'est 1 à la base.Attends, si je fais ça...Hop.1,1.Tu vois ?
00:08:37 :Là en fait on a bien 1,1.Si on fait ça on a 1,1.Parce qu'ici en fait on va directement créer un nouvel attribut pour X.
00:08:46 :Donc l'attribut B.On va créer un attribut d'instance.Mais je sais que ça en piquant,il y a une chose qui peut être très déroutante.
00:08:54 :Quand tu es sur un objet qui est mutable comme ça,comme une liste, c'est le parfait exemple.Ici, tu vas directement aller modifier la liste.
00:09:02 :En fait là on pointe vers la liste.Et c'est cette liste qui est modifiée.Du coup elle est modifiée pour toutes les instances.Selon quel principe, pourquoi est-ce que c'est la liste ?
00:09:15 :C'est toujours comme ça ?Il y a une règle ?J'ai fait un mentorat une fois sur tout ce qui est...par référence, sur tout ce qui est liste dans les fonctions quand on est modifié.
00:09:30 :En gros, dis-toi que quand tu es sur une liste,donc un objet mutable,quand tu modifies la liste, tu modifies la liste elle-même.C'est la liste elle-même que tu modifies.
00:09:42 :C'est vraiment la liste.Du coup, comme c'est partagé entre toutes les instances,ça va toucher aussi l'Y dans ce cas-là.Je te retrouve un lien du mentorat d'ailleurs.
00:09:59 :D'accord, donc c'est parce que c'est mutable.Tout ce qui est mutable, ça concerne la classe.Et ce qui est immutable, ça concerne l'instance.Attends, tu vas dire quoi ?
00:10:09 :Tout ce qui est mutable, ça concerne la table, la classe.La table, la classe et tout ce qui est immutable comme des valeurs ?Non, je ne dirais pas ça.
00:10:20 :Sans parler de classe,si, on va rester dans la classe.Mais là en fait, par exemple, tu vois,A égale 1 ici, c'est immutable.Donc forcément, si tu vas faire X.A égale 2,
00:10:37 :forcément, X.A est égal à 2.On l'assigne 2, suivez-moi.On va ici créer un nouvel attributpour notre instance.On ne va pas les modifier,parce qu'on ne peut pas, c'est immutable.
00:10:56 :On ne peut pas modifier un ici.Donc en fait, on va juste aller créerun nouvel attribut en faisant ça.Ici, on peut modifier une liste.
00:11:04 :Et là, vu qu'on obfie la liste elle-même,c'est cette liste qui est modifiée,elle va être modifiée pour toutes nos instances.On est d'accord que c'est bien l'indicede B crochet 0 ?
00:11:23 :C'est l'indice de la liste, oui.Si j'avais eu plusieurs arguments dans la liste,c'est juste le premier qui change.Là, oui, excuse-moi.Là, c'est vraiment, on change le premier,on est vraiment sur le premier élément.
00:11:39 :Pascal, il faudrait que je te trouve une ressourceoù je retrouve mon mentorat.Il faut que je pense à retrouver mon mentorat là-dessuspour la prochaine fois.
00:11:53 :Je vais t'envoyer le lien.D'accord.Sinon, je n'ai pas de souvenirs dans le cursus,c'est quelque part ça, parce que ça ne me dit rien.
00:12:04 :Il me semble en plus que Thibault,sur le même principe,je ne sais pas s'il m'entend Thibault,est-ce qu'il en parle à Thibault ?Si, il a envoyé des messages.
00:12:16 :Il est là.Si Thibault m'entend,si je n'ai pas de bêtises,je me souviens que dans la formation de base,il y a un passage où il va utiliser des variables,donc un entier, un type immutable,une liste qui est mutable,et en fait, cette liste,il va l'envoyer dans une fonction,
00:12:38 :et en fait, on voit bien que quand onmodifie dans une fonction un entier,on va en créer un nouveau,on ne va pas le modifier,et que quand on envoie une liste,on va modifier la liste elle-même.
00:12:53 :Pascal, t'es sur Discord ou pas déjà ?Pardon ? Je n'ai pas bien compris.T'es sur Discord ou pas déjà, toi ?Oui.C'est quoi ton pseudo ?
00:13:06 :Chopen.C-H-O-P-E-N.C-H-O-P-E-N.Je t'enverrai le lien vers ce passage-là de la formation.D'accord.Je vais le retrouver.D'accord, et dis-moi,si à la place de B égale entre crochet 1,j'avais mis un tuple, entre parenthèses ?
00:13:23 :Attends, t'es où, là ? Où ça ?Dans l'énoncé.Classe A, A égale 1, B égale tuple de 1.Un tuple au lieu d'une liste.
00:13:32 :Qu'est-ce que j'aurais eu ?Tu te souviens qu'un tuple...C'est immuable.Immuable. Tu ne peux pas le modifier.Ah bah oui, oui, donc c'est pas...
00:13:43 :Voilà.Oui, oui, donc ça n'a aucun sens.On ne peut pas.D'ailleurs, on va revenir sur ce principe.Sur ça.Donc, on avait nos réponses.
00:13:52 :Mais ça, c'est un truc qui est...Même moi, quand je le...Ce truc-là, je suis...Deux fois, je suis sûr de faire une connerie,mais je dis non, c'est bon.
00:14:00 :C'est le genre de question où je fais bien gaffe.Non, attends.Oui, excuse-moi.Enfin, j'insiste.Il y a pareil.X.B de 0.J'avais marqué X.B de 0, là.
00:14:11 :Si j'avais mis ce tuple partout,ça n'aurait pas créé une nouvelle instance de...Attends, tu veux faire quoi, ici ?Non, tu remets le tuple là-haut.
00:14:22 :Oui, ici.Là, je remets un tuple ?Oui, voilà.Mince, là, j'ai fait un truc.J'ai fait une connerie.J'ai modifié...Qu'est-ce que j'ai fait ?
00:14:30 :On avait mis 2 ici, je ne sais plus.On avait laissé 2 et on met le tuple là-haut, ouais.Ouais.Voilà.Et si tu remets le X...
00:14:38 :Arrête, t'as modifié, là.Oui, t'as modifié quelque chose, là.C'était comme ça.C'était comme ça, voilà.Oui, voilà.Donc, au lieu de mettre...Oui, voilà, c'est ça.
00:14:47 :Si tu mets ça.C'est ça.C'est là où, en fait, tu ne peux pas,puisque ton tuple est immutable,tu ne peux pas y toucher, à ça.
00:14:54 :Même si c'est...Ah oui, OK.Il prend le B.Le prochain...Je pense qu'on va voir, du coup, pour le prochain exemple,un truc par rapport à ça, d'ailleurs.
00:15:02 :OK.Alors, on va voir quelque chose.Euh...Oui, donc, voilà.Ça, c'était...Donc, vous voyez, ça, c'est le genre de petite chosequi peut être...
00:15:11 :Qu'est-ce que je fais ?C'était 1, à la base.Je crois.Ouais, c'était 1.Je vais le laisser comme ça, tel quel.Voilà.Donc, c'est le genre de petit exercice piège,d'avoir envie de le mettre.
00:15:20 :Celui-là, il était rigolo.Mais il est important de comprendreparce qu'ils aiment bien, dans le Tozamen,ce petit genre d'exercice.Euh...Quand on touche au liste, comme ça,les comportements.
00:15:27 :Euh...C'est bon pour tout le monde ?Euh...Gabriel ?Oui ?Euh...S'il te plaît, la ligne 5...Tu peux m'expliquer la ligne 5,s'il te plaît ?
00:15:36 :Ben, en fait, euh...C'est une assignation parallèle.T'as une variable X,une variable Y.Et tu...Et en fait, tu crées deux instancesde la classe A.
00:15:45 :En fait, c'est comme si je faisaisX égale Aet Y est égale à A.D'accord.Voilà.Et ça, je le supprime, toi.C'est pareil.
00:15:57 :D'accord.Euh...C'est juste pareil.Dans le Tosa, je crois que c'est présenté comme ça,d'ailleurs.J'ai dû le remettre.Un autre exemple assez rigolo.Celui-là.
00:16:09 :Euh...Ici, mon print, ici,qu'il va être la sortie.Je vous laisse réfléchir.Alors, en soi, il n'est pas très compliqué,mais euh...Mais comment dire ?
00:16:26 :Vu qu'il y a trois classes comme ça,qu'il y a de l'héritage, machin,c'est...C'est un bruit.Ah oui, Thibaut, tu le montres avec l'idée, carrément.
00:16:59 :Oui, oui, oui.Oui.Au moins, c'est parlant.Vous me dites quand vous pensez avoir la solution,et puis je...Pour moi, c'est la deux.J'ai entendu Thibaut.
00:17:35 :Pour moi, c'est la deux aussi.Alors, il y a la deux pour...Combien de personnes, du coup ?Deux.Je dis la réponse une.Un, deux, trois.
00:17:48 :OK.Il y en a encore.C'est qui qui a parlé ?C'est qui ?Je ne sais pas.Oui.C'est Godsoft ?C'est une.La une ?
00:17:58 :Non, c'est une, pardon.Qu'est-ce que j'ai fait ?Euh...On ne peut pas la...Voilà.Euh...La une.Moi, je dirais la une aussi.La une.
00:18:19 :Il restait du monde qui voulait répondre ?Non, c'est bon, tu peux y aller.OK.Bon.Euh...La bonne réponse...C'est la deux.Je relis mon code.
00:18:42 :Ouais, ça va être la deux.En fait...On va l'exécuter.Là où ?Euh...On est là.On est là.OK.En fait...Pourquoi ?
00:18:52 :Parce qu'il y a une...Est-ce que quelqu'un veut l'expliquer ?Genre, la réponse, en fait, elle va être...Parce qu'il y a...Il y a tellement d'arguments...
00:19:00 :Il y a tellement d'arguments...On en a donné trois et...Ouais.En fait, il y a...Il y a le seul qui...Oui, alors...Oui, c'est ça.
00:19:09 :Alors...Ici, vous avez votre...Bon, la classe A.On a une classe B qui hérite de A.OK, pas de problème.On a un super ici.
00:19:16 :Et notre classe B...Ce qu'il faut dire, c'est que votre classe B,le constructeur init est là, ici.Donc maintenant...Deux arguments, ici.OK ?
00:19:26 :Bon, le self, on le compte sans le compter, quoi.Mais...Ici, nous, on va passer deux arguments.Ici, C hérite de B.Donc...Si je fais un init ici,j'appelle la méthode super.
00:19:41 :Donc on va, en fait,vouloir notre init de Bet bien, en fait, c'est le Z, ici.Puisqu'ici, vous n'avez bien que deux...paramètres.Et puis là, on en met un de trop.
00:19:54 :Parce que là, on appelle, en fait,le constructeur de la classe B.Ça va ou pas ?Oui, d'accord.Oui, si on avait rajouté le self.y...
00:20:05 :Z égale Z, ça marchait.Ben, je pense que...Dis-moi, ce que tu voulais faire, en fait, c'est...Ben, en fait, si on...Oui, si on fait un self Z égale Z...
00:20:16 :C'est ça que tu voulais faire ?Euh...Oui, voilà, oui.Voilà, OK.Là...On est bon.Ouais, OK.OK ?En fait, on en...Euh...
00:20:29 :Je remets comme c'était.Hop !En fait, on passe trop d'arguments.Ici, il intende vraiment qu'on lui passe que deux...Enfin...Je compte pas...Enfin, le self,il va ressortir dans le...
00:20:39 :Dans votre...Dans votre erreur, ici.Mais vous...Ici, vous allez passer que...Normalement, vous passez que deux arguments.Que là, en fait, il en passait troiset lui, il attend bien que deux arguments.
00:20:52 :Est-ce que c'est bon pour vous ?C'est ça ?Oui, c'est bon.OK.Si c'est bon pour tout le monde,je peux passer la suite, alors.
00:21:02 :Euh...Est-ce que je m'engage sur ça ?Euh...Euh...Bon, alors, on va en faire un tout simple.C'est dommage que...Pour vous montrer, en vrai, le...
00:21:19 :Allez.Le type d'exercice que vous pouvez avoirpour vous dire qu'il y a vraiment moyend'avoir des points facilement.Je vous laisse tirer la consigneet je peux le coder en liveet puis vous me dites ce que je code.
00:21:32 :Ça ressemble à un exercice de bugstring.Il y en a ?Ouais, OK, c'est possible.Ouais.Parce que là, il y a des exercices comme ça.
00:21:49 :De toute façon, sur bugstring,tous les exercices qu'il y a...On a mis des tags Toza,mais tous les exercices sont valablesparce que vous apprenez...
00:21:58 :Tous les concepts sont à prendre pour Toza,en tous les cas.Je vous conseille, mais en PO,sur tous les exercices,que vous appreniez à faire le bugstring.
00:22:08 :Je vous conseille, mais en PO,sur bugstring, les exercices,ça vous donne beaucoup de points pour le Toza.Je vous laisse.Vous me dites quand je peux commencer à coder.
00:22:18 :C'est vous qui codez avec moi.Chut.Je peux y aller ?Je vous laisse encore.Oui, oui.Alors, qu'est-ce qu'on met ici ?Classe item.
00:22:49 :OK.Tout le monde est OK ?Il est appelé comment, Price ?Voilà.Et puis Self.Price.Self.Weight.Self.Weight.C'est un des rares mots en anglais que j'arrive pas à...
00:23:20 :que j'ai dit mal.J'ose pas le dire à chaque fois.Voilà.C'est tout bête.Genre, item.Dans le ratio, c'est ce qu'ils veulent qu'ils passent.
00:23:31 :Je ne sais plus.On avait 10.20.20.Il faut print de sécu.Item.Weight.Voilà.En gros, c'est ça.Vous pouvez, en gros,vous accéder aux attributs.
00:23:47 :Donc là, par exemple,point facile.On a une grande consigne.Enfin, elle n'est pas si grande que ça,mais si vous lisez bien,en fait, il n'y a pas grand-chose à faire.
00:23:58 :Là, l'exercice est résolu.Vous avez les points.Weight.OK.Alors,j'ai la...j'ai la...la question directement.J'ai les réponses.Et vous me dites...Alors, je vous avoue que je suis en train de les faire en...
00:24:24 :en live en même temps que vous,parce que je n'ai pas retenu les réponses,mais alors...OK.OK.Et vous me dites,quand vous avez la réponse,je...
00:24:50 :je fais une petite pause pour voir.Ceux qui l'ont,ils peuvent commencer à me dire.Peut-on utiliser...OK.Il y en a plusieurs.De toute façon,sur le TOSA,quand il n'y a qu'un seul choix possible,d'honnête,ils vous le disent.
00:25:23 :Un seul choix possible ou...Je mettrai...2, 4, 5, 6, 8.2,4,5,6 et8.C'est Christophe qui parle, là ?C'est Christophe.
00:25:42 :C'est Christophe qui parlait, là ?Ouais, ouais.On reconnaît.Moi, je serai sur la même chose.Sur la même chose ?Ouais.Donc 2, tu as dit...
00:25:59 :Je sais qui parle, là.2...T'as oublié de remettre pour le 5 aussi.J'ai oublié...Ah oui, j'en ai oublié combien ?Un seul ?
00:26:07 :Ouais.Il n'y en a pas d'autres ?2, 5, 6, 8.2,5,6 et 8.Est-ce que...Ah, il manquait quelqu'un peut-être.C'est moi.
00:26:29 :Ouais.2, 4, 5, 6, 8 aussi.Donc 2,pareil,4,5,6 et le 8.OK.Pourquoi ?Parce qu'ils sont immuables.Immuables.Exactement.Voilà, c'est l'explication.
00:26:49 :Vu que ça c'est immuable, on ne peut pas l'avoir en clé.Une petite subtilité.Une petite subtilité.OK, on va faire un truc.Là, j'ai un tube.
00:27:01 :OK.J'ai ici...Je ne sais pas, ça me renvoie...Je ne suis pas inspiré.Je suis désolé.La valeur...On est d'accord, ça c'est bon.
00:27:14 :Donc là, j'ai mon tuple.OK.Ça passe ça ou pas ?Là, c'est bien un tuple.On est d'accord.Les récollements.Exactement.Si ton tuple...
00:27:36 :Si votre tuple,dedans il y a comme ça un objet...Un objet muable,ça ne passe pas.Parce que la valeur de H,du coup,elle ne peut pas être fixe.
00:27:46 :Donc,c'est pas possible.Le tuple lui,sa longueur,elle ne change pas en soi.Mais la liste qui est dedans,elle peut être modifiée.Donc,on ne peut pas utiliser comme ça un tuplequi contient une liste.
00:27:59 :Ou même,si je fais ça par exemple,si je fais par exempleOK.Regarde ce que je fais.Hop là.Ça, c'est pas possible.OK. C'est un 7.
00:28:14 :Le 7,il est muable.On ne peut pas non pluscouper le muable en fait.C'est bon ou pas ?Ouais.OK.OK.J'ai bien envie de...
00:28:25 :Ouais,j'avais dit qu'on le ferait.Allez,on vaterminer sur un exercicequi est plus long.Je l'ai faitjuste avant devenir.Je ne l'ai pas eu au Toza.
00:28:42 :Du coup, je l'ai fait.Je me suis mis en condition.Je l'ai fait réellement en modepas d'aide.Alors,c'était le 6.J'ai préparé la consigne.
00:28:50 :Je vous laisse la regarder.Est-ce que je ne peux pas la copier ?Je l'avais...Alors, attendez.En même temps,je vais la copier.Parce que je l'ai rajouté sur BlackString,l'exercice tout à l'heure.
00:29:01 :Il y aune demi-heure.C'est tout à fait le genre d'exoque j'adore.La PO comme ça.C'est celui qu'on adans l'email.Celui-là,je l'ai bien...
00:29:16 :Non,celui-là,je l'ai bien...D'accord.Je l'ai cherché.J'étais en train d'écrire un corpus.Tous les exos,je n'avais plus rien.Je regardes'il apparaît bien.
00:29:29 :Je l'ai bien mis dans mon truc.Il me fonctionne celui-ci.Ok.Je vais le mettre où ?Tu l'as peut-être mis dansque Tosa,non ?
00:29:38 :Je regarde.Je l'ai mis dans Tosa,normalement.Alors là...Désolé.Ah, voilà.C'est bon.Comme ça,je vais pouvoir peut-êtreessayer de vous...Je voulais vous mettre le...
00:29:59 :Autant que vous regardezl'énoncé ici.Autant que vous regardezl'énoncé ici.Ok.Je vous laisse encoreun petit peu réfléchiret puis...Vous me ditesquand je peux commencerà coder.
00:30:21 :Je me mets bien en têtel'énoncé aussi.Je vais peut-êtrel'énoncer aussi.Je l'ai fait tout à l'heure.De toute façon,je l'ai fait tout à l'heure.
00:30:31 :Mais ok.C'est bon.Ok.Est-ce qu'il y en aqui ont des idéesou pas déjà ?On va déjà en parler à l'oralde comment on pourrait faire.
00:30:40 :Dès que quelqu'un a une idée,vous le dites,il n'y a pas de problème.Même si c'est des bribesà un début,vous...Déjà,il faut déclarer dans le unit.
00:30:51 :Il faut déclarerce qu'on veut faire.Et puis,on va déclarerles idées.On va déclarerles idées,on va déclarerles idées.On va déclarerles idées,on va déclarerles idées,on va déclarerles idées,on va déclarerles idées,on va déclarerdans l'unit de l'Atlas.
00:31:10 :On va déclarerles deux paramètresminutes et secondes.Donc toi,tu ferais ça.OK.Aurélie,tu voulais faire quoi ?Un peu ça,mais aussi faire un checkoù si j'ai...
00:31:21 :le deuxième paramètreva être...faire un checkoù le deuxième paramètreest optionnel de base.Si ton premier paramètreest en string,tu t'en fichesdu deuxième.
00:31:30 :Et si tu veuxfaire un checkoù le deuxième paramètreest optionnel de base,si ton premier paramètreest en string,tu t'en fiches du deuxième.
00:31:37 :Et si tu veuxfaire un checkoù le deuxième paramètreest optionnel de base,tu t'en fiches du deuxième.Et si c'est un int,tu dois vérifierque le deuxième est là.
00:31:45 :Tu dois avoir les deux.Moi,je l'ai fait en modepour être à son flexible.Il y a d'idées.En fait,j'ai fait un trucun peu comme ça.
00:31:53 :Est-ce qu'il y a un doutequi vous l'avanceou vous voulezque je commenceà vous montrerce que j'ai fait ?Moi,je pense que c'est pareil.
00:32:01 :C'est avec un...OK.Avec un truc optionnel.Ouais.Donc,s'il n'y a pas le texte,c'est pas grave.C'est aussi un expériment.Alors,je l'ai fait,en fait,mon idée.
00:32:13 :Donc,je l'ai fait différemment.En fait,je suis parti.Donc,je me suis beaucoup servidu constructeur de classe.Sauf qu'ici,pour le rendreà son flexible...
00:32:23 :Oui,tu as mis un art.Oui.C'est quelqu'unqui veut rejoindre le programme.En fait,tu prends combien d'arguments,juste ?Tu regardessi j'en ai deux ou un seul.
00:32:33 :Ouais,voilà.Je vais faire avec le nombre.D'accord.Et...Ouais,en gros,je suis parti ici.J'ai fait...J'étais parti comme ça.Si, en fait,la longueur,en gros,d'argument,il est de deux,eh bien,je faisais directement comme ça.
00:33:00 :Hop,j'avais mon...Les attributs,comme ça,je les récupérais.J'ai fait ça.Je ne vous dis pasque c'est la façon la plus...Peut-être pas.
00:33:09 :Peut-être qu'il y en aqui trouvent quelque chose de mieux.Mais j'ai fait vraimentcomme je pensaisle faire, quoi.Donc,voilà,je suis parti comme ça.
00:33:18 :Et ensuite,je me suis dit...Le problème,après,j'ai un argument,c'est bien,mais dedans,du coup,il faut que je puisse récupérer,en fait,dans ma chaîne de caractère,deux éléments.
00:33:30 :Et,en fait,je me suis dit,pour moi,le plus simple,c'est de partir sur du split.Alors, du coup,ce que j'ai fait,c'est que je me suis faitune petite méthode,privée ou pas,pour l'exercice,je pense qu'ils s'en fichent.
00:33:43 :Les correcteurs,ils ne vont pas vous embêteravec ça.Je suis parti sur une chaînede caractère,sur une méthode.Et est-ce que vous,ici,vous avez une petite idéede ce qu'on peut faire ?
00:33:53 :Le caractère au milieu,c'était quoi ?C'était deux points ?Tu fais un splitsur les deux points ?Ouais,ouais,c'est ça.Ici,c'est un split.
00:34:03 :Ouais,ouais,c'est ça.Ici,on était sur les deux points.Ouais,en gros,c'est ça.Alors,au début,je me suis fait avoirparce que j'ai fait çaen split.
00:34:16 :Donc ça,en fait,ce n'est pas bon.Je l'ai mis exprès.Alors,je vais vous montrerpourquoi.J'ai fait ça,j'ai fait mon splitde tête.
00:34:26 :Sauf qu'en fait,ici,chaîne,ce n'est pasune chaîne de caractère.Je vais vous montrercomment on faitun printde chaîne.Ah bon,voilà.
00:34:37 :Du coup,on est obligéde...Enfin,on doit aller chercheren fait,notre...le premier élémententre guillemetsde notre tuple.Ici,parce que chaîne,ce n'est pas une chaînede caractère en fait.
00:34:51 :Je l'avais mal nommé.Donc,d'ailleurs,dans la correction,je vais le renommeret je le remettrai autrement.Je vais voir.Parce que ça peut porterà confuser.
00:35:00 :Ah oui,on est sur un tuple.Donc,euh...Oui,c'est un...Donc,au début,je suis comme ça.Je fais mon split direct.Je fais,mais non,c'est vrai.
00:35:13 :Du coup,il faut aller chercherforcément notre argumentqui est dans notre tuple.Voilà.Je vais rajoutermon petit bug là-dessus.Ensuite,ce que j'ai fait,c'est que j'ai retournéde ce que je split,en fait,l'élément,le premier élément.
00:35:27 :Et ici,pareil.Donc là,je renvoie,en fait,un tupleavec les anciens dedans.Qu'est-ce que je fais, moi ?N'importe quoi.Je le retourne.
00:35:37 :Hop.Et j'avais, du coup,ma listeet j'avais mondeuxième élément ici.Etj'avais faitunelsecomme ça.Et du coup,voilà.Et donc,j'avais mon attribut,là.
00:35:52 :Et ce que vous pouvez faire,c'est initialiser comme ça,comment je l'ai appelé,parser.Et dedans,j'envoyais,du coup,mes arguments.Bon,il n'y en a qu'un.
00:36:02 :Donc,qui est passé ici,OK.Donc,c'est la chaîne qu'on va récupérer,là.Et on renvoie, du coup,un tupleavec deux valeurs.Et pour ça,il faut les récupérer.
00:36:13 :La première valeur.Et ensuite,euh,point,seconde,ici,j'ai faiteuh,self.Donc,pareil,j'ai fait un parseur,euh,args.Alors,c'est un peu plus simplifiéde ce que je viens d'y penser,là.
00:36:31 :Voilà,j'ai fait comme ça.Est-ce que ça va pour tout le monde,ou pas ?Pas vraiment.Pas vraiment,ouais,pas vraiment.On ne comprend pas du tout.
00:36:40 :OK.Alors,on recommence.Là,on a le code au complet.On a,dans la consigne,euh,soit on envoie un argumentdeux entiers,soit on envoieune chaîne de caractères.
00:36:52 :D'accord.Donc,on a,euh,deux arguments,deux arguments.D'accord.OK.Ah oui,Victor,tu n'étais pas là au début.Excuse-moi.Tu n'as pas,du coup,tu n'as pas vu,tu n'as pas vu la consigne.
00:37:08 :Donc,en fait,on crée une classe.On peut soit l'y envoyerdeux entiers,soit,soit une chaîne de caractères.Donc,il faut que la classe soit flexible.
00:37:17 :Donc,je suis parti sur l'idéequ'on va rendre le constructeurflexible.Alors,ici,j'utilise args.Comme ça,on peut envoyer soit deux arguments,soit un argument.
00:37:27 :Ce n'est pas gênant.On n'est pas bloqué,en fait,à se dire,à trouver une solution.Bon,on va mettre nulle seconde.Non,on utilise args.
00:37:36 :Et comme ça,on peut envoyer soit deux arguments,soit un argument,peu importe.Si,on est d'accord quesi on envoiedes nombres ici,il y a deux,on a deux arguments là.
00:37:46 :Oui.OK.Donc,si on a deux arguments,c'est quec'est les entiers.Donc,on peut directement,en fait,ici,les utiliser,tout simplement,sans s'embêter.
00:37:59 :Et args,ici,ça vous renvoie ici un tuple.En fait,c'est un tuple que vous avez dedans.Donc,vous allez récupérer iciles minuteset les secondes.
00:38:08 :OK ?OK.OK.Voilà.Ça,dans les args,en fait,c'est comme un tuple.Du coup,on va récupérerpremier élément,deuxième élément.Et là où j'étais embêté,c'est que je me suis dit,du coup,j'ai créé,du coup,une méthode.
00:38:26 :Alors,si ça porte à confusion,c'est un peu l'enlever.C'est pas grave.Hop.On rend pas privé.On a une méthode,ici,qui,on va lui passer,en fait,notre,donc,là,dans le else,en fait,on va lui passer,justement,la chaîne de caractère.
00:38:45 :Donc,si on a deux éléments,on est bien sûrdes entiers.Donc,si on a,par exemple,deux éléments,on est bien sûr des entiers.
00:38:54 :Sinon,c'est que c'est notre chaîne de caractère.On est d'accord ?C'est soit ça,soit la chaîne de caractère.Donc,la chaîne de caractère,je l'envoie,en gros,elle va être envoyéeà ma méthode.
00:39:05 :Sauf que,dans la méthode,en fait,la chaîne de caractère,elle va être dans un tuple.Du coup,du coup,ma chaîne,ici,je vais aller chercher,du coup,la chaîne de caractèreelle-même,qui est dans le tuple.
00:39:19 :À l'élément,au premier,à l'index 0.Oui.OK,voilà.Donc là,j'ai bien ma chaînede caractère.Je fais un splitsur les deux petits points.
00:39:31 :Et c'est-à-dire quej'ai une liste,du coup,avec 54 et 32.Oui,oui.Sous formede chaîne de caractère.Et c'est pour çaqu'après,je les retourne,ici.
00:39:43 :Donc,je les retourne,là,en fait,ça va retourner un tuple.Mais je les retournesous forme d'entier.En fait,ici,j'ai bien,là,par exemple,j'ai bien,là,si on met 54,32,comme ça,là,je vais avoir 54 enchaîne de caractère,32 en chaîne de caractère.
00:40:04 :Et je les converse en entier.Voilà,je les converse en entier.Ici,ici,du coup,j'utilise cette méthode-làpour,donc,j'envoie ici ma chaîne de caractère.
00:40:14 :Et la méthode,elle me retourne un tupleavec mes deux entiers.Donc,là,je récupère,là,en faisant zéro ici,je récupère ma,mon premier élémentqui va être mes minutes.
00:40:25 :Et en faisant ça,je récupère mon premier élément,mon deuxième élémentqui va être les secondes.Ok.Ça va là ou pas ?Oui,oui,ça va.
00:40:34 :C'est un peu clair,oui.Ouais,c'est,c'est,c'est,c'est pas l'exercice,l'exercice le plus facile,hein,je…Ouais,et ça,on a deux minutes trentepour trouver ça ?
00:40:48 :Non,pas deux minutes trente,souvent,les exercices qui sont plus compliqués,ils te mettent,c'est plus,moi je trouve,j'en ai eu un chaud,vraiment,j'ai eu le graphe,moi.
00:40:59 :Alors,j'ai réussi,il fallait remonter un graphe,mais il m'avait mis huit minutespour le graphe.Donc,c'est quand même court.Ouais,ouais.Ça,en fait,en fait,il faut vous entraînerà faire les,je vous conseillede faire les exercicesde PO sur,si ça vous trouvez compliqué,
00:41:17 :de faire les exercices de POsur docstring,habituez-vous,je ne sais pas,parce que j'en ai fait pas mal,moi,au boulot,des classes comme çaoù j'avais besoin,des fois,d'aller passer à l'intérieurou de méthode.
00:41:29 :Donc,on peut très bien,vous voyez,dans le constructeur,passer une méthode,en fait,pour créer son attribut.Ouais,ouais.Ça,c'est pas gênant.Et donc,et donc,on va faire,je ne sais pas,déjà,je fais un bug,ça ne va pas fonctionner,on va bien savoir,mais je ne sais pas,
00:41:50 :on va mettre50 minutes,42 secondes,on va avoirT2,on va mettre,bon,on va faire,hop là,ça ne va pas être pareil,là,50,42,ici,comme ça,et on va faire un print,je ne sais pas,on va rendre un printT1,point,minute,on avait dit,
00:42:13 :dans ce T1,point,seconde,hop,et,on va pas,on va copier-coller,tout simplement,voilà,T2,T2,hop,hop,on va regarder,j'espère que je n'ai pas fait une erreur,non,c'est bon,là,ça nous renvoie à la même chose.
00:42:34 :D'accord.Alors,ici,ça,c'est le,en fait,ça,ce que vous voyez ici,c'est pour vous montrer qu'en fait,c'est bien dans un tuple,ok ?
00:42:45 :Oui,oui.C'est ce que j'ai là,voilà.Donc,sinon,si on recommence,hop,voilà.Après,le but,c'est,on pourrait faire plus propre,plus concis,je pense,mais ça,c'est la solutionque j'ai trouvée moi-même,comme ça,c'est ce que j'aurais faitchez Vultosa,quoi.
00:43:07 :Moi,j'aurais utilisé un ternairepour le unit.Tu l'aurais fait en ternaire ?Ouais,en fait,j'aurais récupéré,je ne sais pas,une valeur typeself-timeavec les arguments,ce qui fait,si la longueur est égaleà 2,ou sinon,récupérer le pas par centmais sous forme d'un tuple
00:43:24 :et après,je vais déclinerpour que ça ne finisseplus qu'à 5 secondes.D'accord,ouais,voilà,bah,donc,du coup,de toute façon,il est sur docstring,je suis sûrqu'il y en aqui vont trouver des trucsdifférents etvous pouvez mettreles solutionsoù vous les sauvegarder.
00:43:43 :Je ne sais pas,par exemple,on aurait pu fairemême un truc comme ça,je pense.Je suis en trainde réfléchir,hop,on va tester.
00:43:52 :Et même celuide dessus,avec 15,tu peux faire une ligne.Du coup,tu le fais en deux lignes.Ouais,ouais,on pourrait,du coup,ouais,tous les trucsque tu peux faireen une ligne.
00:44:06 :Ouais,ouais,ouais,on pourrait carrémentfaire ça.Donc là,on est en parlantcomme ça,on peut améliorerles choses.On peut améliorerles choses doncon pourrait du couprevoir ce bloc-làet carrément tout revoircomme Christophecomme tu as dit.
00:44:24 :Toi tu serasen ternaire,du coup.Voilà,il mes 3-4-5-6en ternaire.Ouais,le tout en ternaire.Du coup,ça me fait penserque je voulais vous direque pour le Toza,quand vous avezl'exercice de code,là je l'ai faitde manière spontanée,j'ai fait vraimentce que j'ai fait sur le coup,
00:44:42 :c'est ce que j'aurais fait au Toza.Donc,l'exercice de code,vous allez avoirplusieurs.Eux,ils ne vont pas allervous juger sursi vous souhaitezune compréhensionde liste ou pas.
00:44:53 :Ils vont,eux,ce qui les intéressec'est que le test passe.Donc là,moi,je le filme en conditiondonc j'ai fait un truccomme ça,ils venaient,boum,voilà,euh,mais,par exemple,ben,là,c'est encore mieux,mais le jour du Toza,si jamais vous,vous ne cherchez pas
00:45:15 :forcément à optimiserà fond,quoi,c'est,faites votre première versionqui vous sembleplus facile pour vouset si vous êtesà court de temps,envoyez-la comme ça,quoi,ne cherchez pasabsolument à optimiser.
00:45:28 :Oui,le côté refactoringn'est pas comptabilisé,en fait.Moi,j'en ai fait après,ben,moi,je suis revenu aprèssur l'exercice que j'ai faitcomme ça,ben,au spontané,où je m'étais amuséde dire,tiens,je vais regardervoir ce que j'aurais pu faire,j'avais encore en tête,tu vois,
00:45:48 :des exemples,mais sur le coup,si vous n'avez pas le temps,vous êtes en stress,vous ne mettez pas la pression,quoi,c'est,faites de manièreà ce que ce soitle plus clair pour vous.
00:45:58 :Voilà,moi,j'aime bien,là,par exemple,c'est un peu plus facilecomme ça,que j'ai découvert comme ça,mais,après,vous,chacun a sa façon de faire,donc,voilà.
00:46:12 :Ça va,ça vous a plu,du coup,un petit aperçude ce que vous pouvez avoir ?Oui,alors,du coup,moi,ce que je comprends,c'est,enfin,c'est une découverte pour moi,l'init peut appelerune méthode,ça,je ne savais pas.
00:46:30 :Si,tu peux,en termes de description,le parser est décrit après,l'init,chronologiquement,et,effectivement,comme on déclare toujours l'init en premier,effectivement,à mon avis,quand ça monte en mémoire,tout ça,ils considèrentl'instance en elle-même,complète,et du coup,il n'y a pas notion de chronologie,même si le parser est écrit après l'init,
00:47:00 :ça ne pose pas de problème,en fait.J'ai découvert ça,ouais,exactement,tu as tout dit,tu peux,donc,il ne va pas,ce n'est pas ce que tu as écrit après,tu ne peux pas l'utiliser,en fait,tu es dans ton objet,dans ton nom de méthode,dans ton init,
00:47:15 :tu peux très bien,ici,créer un attribut,en passant par,oui,c'est exprès,j'ai,oui,tout à fait,parce qu'historiquement,enfin,historiquement,quand on apprenait à programmer,il y a longtemps,ben,en fait,on faisait toujours les déclarations avant,sinon,en fait,enfin,tous les outils dont on a besoin,
00:47:36 :on les déclare avant,donc,ça voudrait dire que,le def parser,aurait dû être fait avant l'init,mais là,en fait,on n'a plus besoin de se poser ce genre de questions,c'est réglé lors de l'instance,tout est monté en RAM,et puis,ouais,ok,ça marche.
00:47:50 :Et qu'est-ce que j'allais dire,du coup,ouais,ouais,ça,c'est pratique,parce que,bon,après,j'ai,tu vois,en découvrant des choses,moi,c'est un truc que j'avais découvert,il y a,au début,quand je programmais,c'était Buck Dany,qui est sur Serveur,d'ailleurs,Discord,qui m'avait appris ça,
00:48:12 :à l'époque,parce que j'étais bloqué,je suis,ouais,c'est compliqué,j'arrivais pas à faire ma,une classe,et il me dit,ben,pourquoi tu n'utilises pas une méthode pour,pour faire du traitement,hein ?
00:48:24 :Ah,ben,oui,carrément,ça,pour le,l'optimisation dans des fichiers Excel,ouais,ça va bien servir,en tout cas,donc,ouais,euh,et d'ailleurs,allez,c'est un bon exemple,parce qu'en termes de chronologie,c'est,c'est antilogique,en fait,mais,c'est un bon exemple,je vais faire un truc,ouais,
00:48:48 :je vais faire un truc,ok,là,quand vous avez une classe,on l'a pas instantiée,mais votre classe,vous voyez qu'elle est directement chargée,ça imprime bien,peut-être,dans la classe,juste,pour info,hum,euh,et là,j'y pense rapidement,je,je sais pas si,Autosa,on peut avoir une question là-dessus,
00:49:08 :mais,pour votre classe,ici,tous les attributs sont définis directement,ok,là,euh,elle est pas instantiée,la classe,hein,elle est pas instantiée,oui,oui,bien sûr,vous voyez,en faisant un print,il s'affiche bien ici,oui,et là,je suis content,quelqu'un m'a posé une question,sur Django,
00:49:30 :euh,parce qu'en fait,il faut toujours penser qu'en Python,là,vos classes,elles sont chargées directement en mémoire,donc,si votre attribut,il va pointer,euh,là,j'ai pas d'exemple en soi,là,j'en avais un avec Django,mais là,je n'en ai pas,il va pointer vers quelque chose
00:49:47 :qui n'est pas encore chargé ici,si votre attribut,enfin,votre,votre attribut va pointervers quelque chosequi n'est pas encore chargé ici,et bien,là,vous avez un problème,oui,c'est pour ça qu'en Django,on va utiliser,pour ceux qui en font,des reverse lazy,oui,d'accord,il n'y a pas de reverse,
00:50:05 :voilà,ok,donc,tout ce qui est votre classe,elle est chargée directement en mémoire,donc,voilà,c'est juste pour finir,je lui pensais,je lui aurais dit,parce que c'est souvent le trucque j'ai vu avec Django,les gens,mais,je ne comprends pas,j'ai des reverse dans ma classe,
Aucune occurrence trouvée pour « ».
00:00:00
Introduction
00:02:29
Questions de quiz en direct
00:05:16
Comprendre le concept de mutabilité
00:19:12
Exploration de l'héritage
00:28:50
Constructeur aux arguments hétérogènes
00:50:42
Questions finales et conseils de Gabriel