Modifier le contenu de la note
Exclusif Premium
Débloquez votre potentiel ! ✨
Cette session fait partie de notre programme Premium exclusif
+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors
Prêt à passer au niveau supérieur ?
Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:55 :Donc vous voyez ici Property Getter Setter.Donc en fait une propriété ça va nous permettre de changer et récupérer la valeur d'un attribut à l'intérieur de méthode.
00:01:13 :Donc on va mettre Content ici, c'est le nom de l'attribut Contenu et on a donc ici une propriété, donc c'est la même chose que ce qu'on avait avec Path ici,qui va nous permettre de récupérer la valeur de notre attribut Contenu et une propriété ici Setter qui va nous permettre de modifier la valeur Contenu dans cet attribut Content.
00:01:30 :Donc là par exemple si je mets 5 et que j'enlève cette ligne ici dans laquelle je modifiais le contenu et que je laisse simplement le print,je vais réexécuter le script et vous allez voir que logiquement comme on a retourné la valeur 5 ici dans cette propriété,quand on affiche le contenu on a bien le nombre 5 qui s'affiche.
00:01:47 :Même si ici quand on a créé notre instance on a passé une chaîne de caractère à notre paramètre Content et qu'on l'a assigné à la variable Content ici,vu que dans ma propriété je retourne 5 et bien ça va toujours me retourner 5 quand je vais afficher cet attribut de la sorte.
00:02:02 :Donc ce qu'on peut faire ici, ce qu'on pourrait faire c'est retourner directement self.content.Sauf que si on fait ça vous allez voir qu'on aura un petit problème, on va avoir une erreur de récursion.
00:02:19 :Donc ce qui se passe ici c'est que en fait la propriété à chaque fois qu'on va utiliser cet attribut même sans forcément l'afficher,si je fais juste comme ça sans le print end.content et que je relance le script vous allez voir qu'on aura exactement la même erreur,
00:02:32 :puisque à chaque fois qu'on va utiliser cet attribut content on va rentrer à l'intérieur ici de cette méthode.Donc ce qu'on fait quand on rentre dans cette méthode c'est qu'on retourne self.content.
00:02:41 :Et comme je viens de vous dire quand on utilise cet attribut content on va rentrer dans cette méthode,donc là on va rentrer une nouvelle fois dans cette méthode et dans cette méthode qu'est-ce qu'on fait ?
00:02:49 :Et bien on retourne self.content qui va de nouveau rentrer dans la méthode etc.Donc vous voyez pourquoi on a cette erreur de récursion et pour pallier à ça on va utiliser ce qu'on appelle un attribut privé.
00:03:00 :Donc pour faire un attribut privé c'est très simple, c'est une nomenclature en fait qu'on va utiliser,qui est utilisée par tous les gens qui développent Ampiton qui est de mettre un tiré du bas avant le nom de mon attribut.
00:03:12 :Donc tiré du bas content et comme ça en fait ça va nous permettre d'utiliser un autre attribut,donc là quand je vais utiliser end.content on va rentrer à l'intérieur ici de cette propriété
00:03:23 :et on va retourner la valeur qui est contenue dans self.content.Et cette valeur et bien où est-ce qu'on va la changer ? Et bien tout simplement dans le setter ici.
00:03:30 :Donc dans la méthode setter ici cette fois-ci je vais changer la valeur de cet attribut,donc je vais faire self.-content et on va dire que c'est égal pour l'instant à value.
00:03:39 :Donc value c'est le paramètre qu'on a ici dans notre méthode.Donc par exemple ici si je fais end.content égale 10 ou alors même directement dans la méthode init
00:03:48 :quand on fait self.content égale content et bien on va automatiquement passer quand on fait une assignationdans cette méthode setter qui va assigner la valeur que l'on passe à la méthode à notre attribut ici self-content.
00:04:01 :Et ensuite quand on va vouloir afficher cet attribut et bien on va passer dans cette méthodequi va nous retourner la valeur de cet attribut qu'on aura préalablement modifié avec cette méthode.
00:04:10 :Donc là si je fais par exemple end.content égale 10 et qu'ensuite je fais un print de end.contentje vais lancer le script et normalement on devrait avoir la valeur 10 qui va être affichée.
00:04:20 :Si je fais un print avant de modifier cet attribut on va avoir la valeur que l'on passe ici dans la méthode initqui va être assignée directement à mon attribut content donc dans la méthode init ici.
00:04:31 :Donc on a bien ceci est un contenu et ensuite le nombre 10 qui s'affiche ici.Donc nous ce qu'on veut faire dans la méthode setter ici c'est d'empêcher l'utilisateur de rentrerautre chose qu'une chaîne de caractère.
00:04:43 :Donc on va vérifier à l'intérieur de cette structure conditionnellesi la valeur qui est passée ici en argument est bien de type chaîne de caractère.
00:04:50 :Donc pour ça on va utiliser la fonction isInstant qui permet de vérifier si value est de type string.Donc si c'est le cas et bien on va faire l'assignation.
00:04:59 :Donc on va assigner la valeur ici donc value à notre attribut tiré du bas contentet si ce n'est pas le cas et bien dans le else on va tout simplement lever une erreur de type typeErroret on va afficher un message qui va dire par exemple valeur invalide besoin d'une chaîne de caractère.
00:05:16 :Voilà par exemple comme ceci.Et donc on va essayer ça tout de suite.Donc là je laisse mon print ici print n.content je vais enlever le deuxième print
00:05:26 :puisque normalement ça ne va pas marcher on va s'arrêter avant icipuisque quand on va essayer de modifier cet attribut avec autre chose qu'une chaîne de caractèredonc dans ce cas-ci un nombre entier on va se retrouver avec l'erreur typeError ici qui va être levée.
00:05:39 :Donc je teste tout ça je relance mon script et là comme de fait on a l'erreur typeErrorqui est levée avec mon message valeur invalide besoin d'une chaîne de caractère.
00:05:48 :J'ai oublié la parenthèse à la fin je vais la rajouter comme ceciet on a si on revient tout au début du script bien affiché au début le contenudonc de mon attribut n.content ici
00:06:00 :puisque au départ on avait bien cété ici en l'envoyant en argument dans la création de notre instancedonc jusqu'ici ça a fonctionné puisque ici on envoie une chaîne de caractèredonc quand on fait une assignation on va passer dans la méthode setteravec value qui va être égal à une chaîne de caractère
00:06:16 :donc on va modifier cet attribut privé self.-backcontentet quand on va par contre ici essayer d'entrer un nombre entiercette fois-ci cette condition sera fausse puisque value ne sera pas égal à une chaîne de caractèreet on va donc lever cette erreur.
00:06:30 :Donc voilà pour le contenu, voilà comment à l'intérieur de cette propriétéempêcher l'utilisateur de rentrer autre chose qu'une chaîne de caractèredonc ça c'est quelque chose de très pratiquequi nous permet de continuer à utiliser cet attribut comme cecidonc vous voyez qu'on n'a pas besoin de mettre de parenthèse ou quoi que ce soit
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.