- 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 person00:00:00 :Dans cette partie, on va créer la classe qui va nous permettre de gérer les utilisateurs.Je vais la créer à l'intérieur de mon fichier crm.py.
00:00:09 :Pour créer une classe, on utilise l'instruction class suivie du nom de notre classe.Dans mon cas, je vais l'appeler user comme ceci avec un U majuscule pour respecter les conventions PEP 8.
00:00:20 :Et à l'intérieur de cette classe, on va créer la fameuse méthode init,donc def init comme ceci avec deux tirés du bas au début et à la fin.
00:00:28 :Et on met le self à l'intérieur des parenthèses, puisqu'on va créer des instances avec notre classe.Pour l'instant, je vais mettre un pass à l'intérieur du init.
00:00:36 :On va juste avant de remplir notre classe, créer une petite structure qui va nous permettre de tester notre code.On va faire if-name==main,donc la fameuse structure conditionnelle qui nous permet d'exécuter du codeuniquement si on exécute directement le fichier et non pas quand on l'apporte.
00:00:54 :Et à l'intérieur de cette structure, on va utiliser la bibliothèque Faker pour générer des utilisateurs avec notre classe.Donc on va dire from Faker import Faker, donc la classe Faker ici.
00:01:06 :On va créer une instance de Faker et on va spécifier le paramètre local ici en le mettant en français,donc fr en minuscule tiré du bas, fr en majuscule.
00:01:15 :Comme ça, on aura des données avec des noms et des prénoms qui vont être francophones.Pour l'instant, on ne va pas plus loin.On va par la suite utiliser cette instance de Faker pour générer des prénoms, des noms, des numéros de téléphone et des adresses automatiquement.
00:01:28 :Et on va revenir maintenant dans notre classe pour gérer les utilisateurs.Donc on a plusieurs éléments qu'on veut gérer.On va vouloir gérer le prénom, le nom de famille, le numéro de téléphone et l'adresse.
00:01:39 :Donc je vais les renseigner ici dans les paramètres de init.Donc on va avoir le prénom first name comme ceci.On va spécifier avec les annotations de type que ça va être un objet de type chaîne de caractère.
00:01:50 :Donc on va mettre str.On va ensuite avoir le nom de famille que je vais appeler donc last name.Là encore, avec les annotations de type, on spécifie que ça doit être une chaîne de caractère.
00:01:59 :Pour le numéro de téléphone, on va l'appeler phone number.Là encore, une chaîne de caractère et on va mettre une valeur par défaut qui va être une chaîne de caractère vide.
00:02:07 :Donc ça, ça nous permet de ne pas forcément avoir besoin de renseigner un numéro de téléphone.Donc ce qu'on veut, c'est que le prénom et le nom de famille soient obligatoires.
00:02:15 :On ne met pas de valeur par défaut ici.Donc si on ne donne pas de valeur quand on crée une instance de cette classe, on aura une erreur.
00:02:21 :Par contre, pour le numéro de téléphone ou l'adresse, on pourra avoir des contacts qui n'ont ni numéro de téléphone ni adresse.Donc on va mettre une valeur par défaut ici qui est une chaîne de caractère vide.
00:02:31 :On va faire la même chose pour l'adresse.Donc ici, je mets une virgule et on va mettre un dernier paramètre adresse qui va être là encore une chaîne de caractère avec une valeur par défaut qui est égale à une chaîne de caractère vide.
00:02:42 :On va ensuite récupérer tout ça dans des attributs de notre instance.Donc on va faire la même chose que ce qu'on a ici.En fait, c'est à dire qu'on va récupérer firstname, lastname, phone number et adresse.
00:02:51 :Mais cette fois-ci sur le self.Donc on va dire self.firstname égale à firstname.On va faire pareil avec tous les autres paramètres.Donc self.lastname égale à lastname.
00:03:01 :Self.phone number égale à phone number.Et self.address qui est égale à address.Et maintenant qu'on a tout ça de défini, on va pouvoir tester notre classe pour l'instant juste avec ça.
00:03:13 :Donc on va faire une petite boucle.On va dire pour tirer du bas.Donc tirer du bas c'est une convention quand on n'utilise pas la variable que l'on va créer.
00:03:21 :Donc je vais dire pour tirer du bas in range de 10.Puisque là en fait on veut juste boucler 10 fois mais on ne va pas utiliser cette variable ici.
00:03:27 :Donc on pourrait l'appeler i.Ça marcherait de la même façon mais par convention quand on n'utilise pas cette variable que l'on crée avec notre boucle for, on met un tirer du bas.
00:03:35 :Ensuite je vais créer donc une instance de ma classe.Donc on va créer une instance qu'on va appeler user ici.Alors attention à l'indentation.Bien mettre 4 espaces ici.
00:03:43 :Ensuite on va mettre donc la classe utilisateur et on va utiliser notre instance de fake pour créer des noms.Donc pour le first name on peut créer un prénom avec la méthode first name.
00:03:52 :Pour le last name ça va être pareil avec last name.Et ensuite pour le phone number et l'adresse ça va être là encore le même nom que l'attribut qu'on a créé.
00:04:01 :Donc phone number et fake.address pour créer un numéro de téléphone et une adresse aléatoire.On pourrait spécifier bien entendu ici les paramètres.Donc dire first name égal à tout ça et mettre ça à la ligne.
00:04:14 :Last name égal à fake.lastname.Ce serait peut-être un peu plus explicite pour quelqu'un qui lirait notre code.Et ici pour l'adresse égal à fake.address.Donc comme ça on a bien, on voit bien ici en fait les paramètres.
00:04:26 :Donc on crée une instance de notre classe utilisateur.On met first name égal à fake.firstname.Donc on va créer un prénom aléatoire, un nom de famille aléatoire, un numéro de téléphone aléatoire et une adresse aléatoire.
00:04:38 :Donc pour l'instant si je fais un print de user on va voir ce que ça donne.On ne va pas aller plus loin, on a déjà écrit pas mal de lignes de code.
00:04:44 :Donc je vais m'arrêter ici, je vais sauvegarder et je vais lancer le script pour voir ce que ça nous donne.Et là vous allez voir que ce que ça nous retourne ce n'est pas très explicite.
00:04:51 :On a juste une indication qu'on a un objet qui provient de la classe user et on a l'adresse en mémoire de l'objet.Donc ce n'est pas très explicite.
00:04:57 :Nous ce qu'on aimerait c'est afficher le prénom et le nom de famille de la personne.Donc pour ça on va créer une méthode un peu spéciale qui est la méthode string comme ceci avec deux tirés du bas au début et à la fin.
00:05:07 :On n'oublie pas de mettre le self et on va retourner une chaîne de caractère.Dans ce cas-ci on va retourner une chaîne de caractère avec le prénom, l'adresse et le numéro de téléphone avec un saut à la ligne à chaque fois.
00:05:19 :Donc ce que je vais faire c'est un return d'une fstring et à l'intérieur de ce fstring on va insérer le firstname donc self.firstname.On va ensuite faire un slash n donc un retour à la ligne.
00:05:30 :On va mettre self.lastname.Là encore un retour à la ligne.On va mettre self.address ou phone number.Plutôt on va garder le même ordre.Ensuite slash n et pour finir self.address.
00:05:41 :Donc là encore on ne va pas aller plus loin.On va déjà vérifier que ça fonctionne.Je sauvegarde.Je relance le script et là on a quelque chose qui est un peu plus explicite.
00:05:56 :Je vais mettre une chaîne de caractère ici avec un tiret que je vais multiplier par 10.Comme ça on va avoir une ligne qui va séparer chaque utilisateur.
00:06:03 :Donc je sauvegarde.Je relance mon script et là vous voyez qu'on a bien une ligne entre chaque utilisateur.Donc on voit bien ici le prénom, le nom de famille, le numéro de téléphone et l'adresse pour chaque utilisateur avec des prénoms et des noms de famille en français, des adresses et des numéros de téléphone en français également.
00:06:19 :Donc tout fonctionne comme prévu.On va également créer une propriété puisque là pour l'instant vous voyez qu'à chaque fois qu'on veut afficher le prénom et le nom de famille on est obligé d'utiliser ces deux attributs.
00:06:29 :Donc ce qu'on va faire c'est qu'on va faire une propriété.Donc on ne va pas créer un attribut ici directement.On pourrait créer ici un attribut qui s'appelle full name par exemple et qui est égal à self.firstname plus self.lastname avec un espace qu'il faudrait rajouter entre les deux.
00:07:05 :Donc là c'est deux façons de faire soit créer directement un attribut dans init soit créer une propriété ici.L'intérêt d'avoir une propriété c'est que si jamais on change le prénom ou le nom de famille ça va être dynamique.
00:07:17 :Imaginez ici que l'on fasse un self.fullname qui soit égal à self.firstname plus un espace plus self.lastname.Et bien cet attribut il ne serait créé qu'au moment de l'initialisation de ma classe.
00:07:30 :Donc quand je crée un utilisateur ici on aurait cet attribut full name qui est créé.Mais si par la suite je modifie le prénom ou le nom de famille on ne régénérerait pas cet attribut.
00:08:06 :Donc normalement on devrait avoir Patrick Gérard et on a toujours honoré Gérard.Donc ça c'est vraiment parce que cet attribut fullname il n'est calculé qu'au moment de l'initialisation.
00:08:16 :Donc que quand on crée notre instance ici et on peut modifier ensuite le firstname mais ça ne modifiera pas le fullname.Alors que si on fait une propriété ici la propriété elle va être dynamique à chaque fois qu'on va vouloir afficher cette propriété il va recalculer la chaîne de caractère à partir du firstname et du lastname.
00:08:45 :Donc là vous voyez par exemple on avait Daisy Baron et au final on a Patrick Baron.Là pareil on avait Céline Alain et au final on a Patrick Alain puisque là quand on modifie le firstname et qu'on affiche ensuite le fullname il va être automatiquement recalculé à partir des valeurs mises à jour.
00:09:00 :Donc c'est l'intérêt d'avoir une propriété plutôt qu'un attribut.Donc ce n'est pas exactement pareil que de passer par un attribut qu'on fait dans init.Il a quand même une petite différence et donc moi je préfère passer ici par une propriété.
00:09:11 :Donc on commence à avoir quelque chose qui fonctionne pas mal.La dernière chose que je vais rajouter c'est une méthode repre en plus de str ici.
00:09:20 :C'est une méthode en fait qui va me permettre d'avoir une représentation de ma classe.Donc ce que je vais faire ici c'est faire une méthode spéciale repre et dans cette méthode spéciale on va tout simplement retourner une chaîne de caractère qui va donner une indication sur comment on pourrait recréer cet objet à partir des informations que l'on a.
00:09:37 :Donc on va mettre ici la classe user et à l'intérieur des parenthèses on va insérer le firstname et le lastname.On pourrait mettre également le phone number et le adresse.
00:09:46 :Pour l'instant je vais juste mettre firstname et lastname puisque c'est les deux seuls éléments qui sont obligatoires.On pourrait si on le souhaitait rajouter à la suite le phone number et le address.
00:09:56 :Donc ça c'est ce qui va être utilisé quand on va afficher une représentation de notre instance avec la fonction repre ici.Donc si je fais un print de repre user je vais sauvegarder et relancer le script pour vous montrer ce que ça donne.
00:10:07 :Vous voyez que là on a cette chaîne de caractère qui est affichée avec la classe, le prénom et le nom de famille.Donc on a un script qui est fonctionnel. La dernière chose que je vais modifier c'est tout simplement de remplacer ici le firstname et lastname sur une ligne différente.
00:10:21 :Je vais mettre tout simplement à l'intérieur des accolades ici le fullname.Donc comme ça ce sera plus clair plutôt que d'avoir le prénom et le nom de famille sur deux lignes séparées.
00:10:29 :On va avoir le prénom au complet et ensuite le numéro de téléphone et l'adresse.Donc si je sauvegarde et là que je raffiche à la place de repre l'utilisateur directement.
00:10:38 :Je sauvegarde, je relance et là vous voyez qu'on a bien le prénom au complet donc avec le prénom et le nom de famille.Ensuite le numéro de téléphone et l'adresse.
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.