Python #13 - propriétés d'encapsulation

  Рет қаралды 113,344

FormationVideo

FormationVideo

Күн бұрын

Les propriétés permettent d'encapsuler, c'est-à-dire de contrôler le fonctionnement (accès/modification/suppression) des attributs de vos classes en Python.
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
◾ Soutenir FormationVidéo : bit.ly/2L0xNXA
◾ Site web : jasonchampagne.fr
◾ Discord : discord.me/jas...
◾ Twitch : / jachampagne
◾ KZbin (personnel) : / jasonchampagne
◾ Twitter : / jachampagne8
◾ Facebook : / jachampagne8
◾ Instagram : / jachampagne8
◾ Snapchat : / jachampagne8
🔵 Crédits :
Musique proposée par La Musique Libre
Wontolla - Can You Feel Me (ft. Nathan Brumley) : • |Musique libre de droi...
Wontolla : / iamwontolla
Nathan Brumley : / nathanbrumleysongwriter
MERCI DE VOTRE FIDÉLITÉ 💙 !
#Python #programmation #encapsulation

Пікірлер: 309
@sindbadbouba1649
@sindbadbouba1649 6 жыл бұрын
A partir de ce cours sur les classes ça commence à chauffer sérieusement avec Python....à croire que le chiffre 13 porte mal chance....j'ai l'impression que beaucoup de débutants vont exploser en plein vol à partir du prochain cours, si ce n'est déjà fait pour certains. J'espère que je ne serai pas encapsulé dans un vaisseau spatial après l'explosion...lol....à suivre.....
@formation-video
@formation-video 6 жыл бұрын
C'est comme tout, il faut s'accrocher, rien n'est difficile si on prend le temps d'apprendre. Et pour aider, il y a aussi la playlist "Python - exercices" pour mettre en application le cours ;)
@marcusparker8160
@marcusparker8160 6 жыл бұрын
Je confirme Sindbad ! ;) Mais faut s'accrocher ...
@gamingqc6465
@gamingqc6465 5 жыл бұрын
Moi aussi c'est dur je trouve
@drissg2407
@drissg2407 4 жыл бұрын
Moi j ai lâché depuis changer de planète
@Mosnouk
@Mosnouk 3 жыл бұрын
@Driss G 😪
@Red-fv7ti
@Red-fv7ti 7 жыл бұрын
Salut Jason :) Je voudrais savoir si tu feras aussi des cours sur les sockets, fichiers, ect.. par la suite ? En tout cas merci pour ton investissement sur KZbin ! Tu es super clair dans tes explications ça donne vraiment envie de suivre la série entière ^^
@formation-video
@formation-video 7 жыл бұрын
Bonjour à toi :). Oui, ce sont des sujets que j'aborderai :).
@spinoulasttry8084
@spinoulasttry8084 3 жыл бұрын
Merci pour ces Videos. c'est vrai que la ça part vite, je toruve que ça manque d'excercices pour appliquer. Tu trouve des exemple assez facilement car tu as de l'expérience, mais avoir des idées de comment expérimenter ce que tu présente est aussi très difficile. As tu des liens pour s'exercer ? En tous les cas merci pour le travail
@formation-video
@formation-video 3 жыл бұрын
Bonjour, j'ai une playlist d'exercices complétée au fur et à mesure : kzbin.info/aero/PLrSOXFDHBtfEiSgOG1FM4oq-yS24iV4s1 Mais le meilleur moyen de s'exercer est de faire des projets/programmes personnels. Après tout, tu es en train d'apprendre Python pour faire quelque chose avec non ? 😉
@spinoulasttry8084
@spinoulasttry8084 3 жыл бұрын
@@formation-video merci je n avais pas vu cette playlist je vais regarder. En effet j apprend comme première expérience car c est utilisé dans u logiciel d imagerie médical comme code source. Pour l instant c est loin de l application future. Et je pense que je manque d imagination sur ce que pourrais faire avec tout ça ;-)
@formation-video
@formation-video 3 жыл бұрын
Bon courage en tout cas ! 🙂
@vico7585
@vico7585 6 жыл бұрын
Probleme résolu j'ai revisionné la vidéo sur les fonctions Super video
@formation-video
@formation-video 6 жыл бұрын
Ah super alors :)
@Dr.AnassKadiri
@Dr.AnassKadiri 4 жыл бұрын
Merci bc vous expliquez très bien, j'aime bien ton cours, je le suit vraiment avec plaisir MERCI
@formation-video
@formation-video 4 жыл бұрын
De rien, et merci pour ton message 🙂 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@yayasylla687
@yayasylla687 5 жыл бұрын
une fois encore merci enormément. :)
@formation-video
@formation-video 5 жыл бұрын
Merci à toi aussi 🙂 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@loloolaf6359
@loloolaf6359 7 жыл бұрын
petite question : lorsque l'on accede à une variable via une propriété , l'interpreteur sait qu'il doit utiliser la methode getter,setter,deletter ou helper en fonction de ce que l'on fait ? (c'est juste pour une confirmation.) il faut surement que je sois plus clair , exemple: j'ai defini ma classe , avec un attributs sa propriété associée . si je :print(class.attribut) l'ordinateur sait qu'il doit utliser getter car j'ai utiliser print ?c'est bien ça ? si je : class.attribut=5 l'ordinateur sait bien qu'il doit utiliser setter car j'ai fait une affectation ? c'est bien ça? idem pour le del (class.attribut) et le help(class). si vous me confirmez ce que je viens de dire . il n'existe que del,=,help,print pour utiliser la proprieté ou existe il d'autre fonctions ou "technique " permettant d'y acceder ? excusez moi si je ne suis pas clair et de la longeur du message .merci d'avance .
@formation-video
@formation-video 7 жыл бұрын
Bonjour c'est exactement cela. La fonction property() prend en paramètre les noms (de ton choix) des méthodes qui vont filtrer et donc permettre de contrôler l'accès et la modification éventuelle des attributs d'une classe. Donc, à partir du moment où tu vas vouloir lire un attribut, de toutes les manières possibles en Python, on passera automatiquement par la méthode définie comme étant le "setter" de cet attribut.
@aminechadli5836
@aminechadli5836 4 жыл бұрын
Bonjour , merci bcp pour les videos ! Une remarque , lors de l'utilisation de l'encapsulation : age = property (_getage,_setage) je comprend que l'encapsulation agis sur le paramettre age et non pas sur l'attribut _age . est-ce qu'il y a une différence ? je sais que dans ce cas c'est la meme chose mais je pense que ca peut nous creer des problemes dans d'autre cas
@formation-video
@formation-video 4 жыл бұрын
Bonjour, l'usage de propriétés en Python reste une manière de filtrer l'accès et la modification des attributs en Python, mais au départ, la philosophie du langage laisse libre la possibilité de le faire sans filtrer (à la différence d'autres langages où l'on refusera l'accès et la modification d'attributs privés d'une classe. Si on passait par "_age", on contournerait les filtres. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@ERGO747
@ERGO747 6 жыл бұрын
Hello, les cours sont vraiment bien, mais pourrais-tu faire des tp ? pour avoir des idées de mis en oeuvre
@formation-video
@formation-video 6 жыл бұрын
Coucou, regarde dans les playlists de ma chaîne, tu trouveras notamment "Python - exercices" pour de la pratique :)
@yamineklioui1657
@yamineklioui1657 6 жыл бұрын
Bonjour à vous , je sais que il y a longtemps que la vidéo a été faite , mais j'aurais une question ; s'il vous plait à la minute 11:40 vous avez dit que del permettait de supprimer la valeur d'un attribut , or je ne vois pas à quel moment la propriété _delage a pu intervenir dans la suppression de l'attribut age qui est encapsulé ; vous avez mit " del h1.age " donc vous avez supprimer normalement la valeur de l'attribut age , et cela sans passer par le "deleter" , on peut très bien le faire même si on supprime la propriété " _delage" ; ce point m'est pas très clair , j'aimerai quelques explications s'il vous plait car cela me désappointe . Merci encore pour votre travail !
@formation-video
@formation-video 6 жыл бұрын
Bonjour, l'utilisation de l'instruction "del" va supprimer directement la valeur voulue. Par contre, en utilisant une propriété (_delage par exemple dans mon code), tu peux alors contrôler la manière de supprimer un attribut, sous certaines conditions, voire interdire la suppression, ce qui rendrait alors l'utilisation de "del" inefficace ;) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@yamineklioui1657
@yamineklioui1657 6 жыл бұрын
Merci de votre réponse , j'ai compris grâce à vos explications , donc la suppression de " age" ne s'est pas faite à travers " delage " mais grâce à l'instruction " del h1.age" c'est bien cela ? et la méthode " delage" permettrais de faire des contrôles , mais celle-ci n'est pas intervenu dans la suppression de " age " ? Merci !
@formation-video
@formation-video 6 жыл бұрын
Si, la méthode est intervenue, mais si on n'y fait rien de particulier, alors l'attribut est supprimé. Ces propriétés ne sont pas obligatoires. Donc, faire une propriété pour la suppression se fait dès lors que l'on veut faire autre chose que simplement supprimer l'attribut. +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@yamineklioui1657
@yamineklioui1657 6 жыл бұрын
Merci d'avoir prit le temps de me répondre , c'est maintenant clair pour moi . Merci pour votre gros travail !
@formation-video
@formation-video 6 жыл бұрын
De rien, à bientôt =) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@om3rbenbrahim488
@om3rbenbrahim488 4 жыл бұрын
Le _ "underscore avant le nom de la variable" va au contraire annuler l'importation de l'attribut si par exemple on fait un `from "maClasse" import *` et il existe un __variable "double underscore avant le nom de la variable" qui va lui interdire l'utilisation de la variable en dehors de la classe ::voilà une doc shahriar.svbtle.com/underscores-in-python
@formation-video
@formation-video 4 жыл бұрын
Oui, le double underscore reproduit le comportement d'un attribut privé 👍 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@juanjuan5733
@juanjuan5733 2 күн бұрын
Si on place juste un underscore devant le nom de l'attribut ça n'empêche pas de modifier la valeur de l'attribut, c'est bien cela...? On aura beau encapsuler avec un setter pour contrôler l'âge saisi, si on veut on pourra toujours modifier la valeur de l'attribut avec par exemple "h1._age"...? Alors qu'avec le double underscore on a bien un attribut privé qui n'est alors accessible qu'à travers un getter ou setter...? Donc on a plutôt intérêt à encapsuler des attributs que l'on a paramétré comme privé non...?
@youssouf.a
@youssouf.a 5 жыл бұрын
Bonjour Jason, Voila j'ai un petit souci avec mon Code, en utilisant la fonction help(Humain.age), j'ai rien qui s'affiche comme sortie je n'ai que : Help on property : puis là c'est vide, donc je met le lien de mon code ci-dessous. et j’espère ne pas trop vous déranger :) pastebin.com/z4crMBZP Merci bien :)
@formation-video
@formation-video 5 жыл бұрын
Normal que tu n'as rien, une docstring ne se fait que pour une classe, fonction ou méthode +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@pinklife00
@pinklife00 7 жыл бұрын
bon re après une longue pause du au travail je reprends cette formation cette vidéo est juste impécable comme d'hab merci sensei
@formation-video
@formation-video 7 жыл бұрын
Bon retour et bonne formation =) !
@Gorille_Bleu
@Gorille_Bleu 5 жыл бұрын
En fait si je comprend bien c'est pas exactement comme le C++ ou C#, on ne réduit pas l'acces aux methodes ni attributs, ici c'est surtout afin d'avoir un contrôle plus poussé sur l'utilisation des attributs ? Premier cours que je trouve assez compliqué, il faut s'accrocher ! Mais je commence à être à cours d'idée pour m'entraîner
@formation-video
@formation-video 5 жыл бұрын
Voilà c'est ça, les propriétés nous permettront de filtrer l'accès/la modification ou encore la suppression d'un attribut de la classe. +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@valou2188
@valou2188 7 жыл бұрын
Salut , j'ai vu tes vidéos et je vois que tu as quand même de l’expérience sur le domaine de l’ordinateur . J'ai actuellement un ordinateur portable qui est en train de mourir. J'aimerais que tu m'aide a trouver une bonne config pour tourner des jeux comme minecraft en particulier et pouvoir filmer tout en ayant aucun lag et une fluidité. Merci de m'ajouter skype : waltix.private pour me conseiller ainsi.
@formation-video
@formation-video 7 жыл бұрын
Bonsoir :). Alors rassure-toi, il ne te faudra pas un énorme PC pour du Minecraft et de l'enregistrement vidéo. Tu dois surtout vérifier d'avoir un bon processeur (chez Intel, au moins un Core i7, et suffisamment de RAM, 16 Go serait un idéal).
@Noktaling
@Noktaling 5 жыл бұрын
Est-ce qu'il y a la musique de votre introduction disponible en entier sur KZbin ou autre s'il vous plait ?
@formation-video
@formation-video 5 жыл бұрын
Je ne saurais plus dire quel est le son d'intro désolé +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@Noktaling
@Noktaling 5 жыл бұрын
@@formation-video merci quand même.
@mohamed6167
@mohamed6167 2 жыл бұрын
Bonsoir , s'il vous plaît j'ai une question c'est que j'ai remarqué qu'on mets des méthodes à l'intérieur d'une méthode principale d'après ce que je sais déjà dans les vidéos précédentes les méthodes on leur passe des attributs , comment fonctionne ça au niveau de la programmation ?
@formation-video
@formation-video 2 жыл бұрын
On passe des arguments aux fonctions/méthodes, et ici on communique des fonctions de rappel, qui font donc référence aux méthodes de la classe
@mohamed6167
@mohamed6167 2 жыл бұрын
@@formation-video Merci .
@Nicolas-lb9de
@Nicolas-lb9de 6 жыл бұрын
Salut ! Merci beaucoup pour tes vidéos ! J'ai une question qui m'embête depuis plusieurs vidéos, je n'ai pas bien comprit l'utilité du __init__ , pourquoi on devait lui mettre les __ , pourquoi on ne doit pas dans ce cas les mettre aux autres méthodes ... merci de ton aide :P
@formation-video
@formation-video 6 жыл бұрын
Coucou =). Les méthodes entourés de __ sont des méthodes spéciales de Python, pour les différencier des méthodes que nous créons nous-même :)
@raphaelnej8387
@raphaelnej8387 3 жыл бұрын
en plus les méthodes qui ont deja __ comme __init__ sont déjà définies par python pour toutes les classes et c’est la fonction qui se lance automatiquement quand tu crées un nouvel objet de cette classe c’est pour ça qu’il faut redéfinir __init__ pour qu’il corresponde à ta classe et pas à une classe vide
@saargh105
@saargh105 3 жыл бұрын
bonjour, encore une fois un tout grand merci pour vos vidéos qui m'aident bien dans l'apprentissage de python auriez vous la gentillesse de m'expliquer quel est la différence entre le fait de rendre inaccessible les attributs de classe en définissant des propriétés comme vous l'expliquez dans votre vidéo et le fait de rendre un attribut privé à une classe en lui ajoutant un double Under score devant son nom ; si j'ai bien compris, dans le dernier cas, ça évite de devoir définir les propriété" get, set, etc... "dans la classe en vous remerciant d'avance pierre
@formation-video
@formation-video 3 жыл бұрын
Bonjour, même si ce n'est pas dans la philosophie de Python, on peut effectivement privatiser les attributs avec un double tiret du bas. Mais l'intérêt de définir des propriétés, c'est d'avoir des filtres à disposition pour l'accès, la modification et/ou la suppression d'un de ces attributs. Exemple : si je veux autoriser la lecture d'un attribut seulement à un utilisateur en particulier, je pourrai le faire avec une propriété. En revanche, si l'attribut est privé au départ, il le sera pour tout le monde
@nicolasdupuy-nm6mj
@nicolasdupuy-nm6mj Жыл бұрын
top, je recommande
@formation-video
@formation-video Жыл бұрын
🙏
@MartinCarufel
@MartinCarufel 6 жыл бұрын
Bonjour, j'adore vos vidéos elles sont très claires et bien présentés. Dans la video vous ne parlez pas de la façon alternative très utilisé pour le Getter, Setter ... en utilisant les décorateurs @property. Je suis débutant en python et la première fois que j'ai vue cette notation j'ai dû chercher sur le web pour savoir c'était quoi. Vous pourriez peut-être en profiter pour traiter de decoration en générale. Étant donnée que je suis noob en Python je ne sais pas si c'est très ou peu pertinent. Merci de partager avec le web votre savoir.
@formation-video
@formation-video 6 жыл бұрын
Bonjour, j'ai prévu un tutoriel en annexe pour parler des décorateurs et générateurs :)
@nop46
@nop46 4 ай бұрын
Une formation KISS..... Bravo ...à toi ...à vous
@formation-video
@formation-video 4 ай бұрын
Merci
@matheoschlienger7929
@matheoschlienger7929 5 жыл бұрын
Salut, j'ai un petit problème, le voila: File "C:\Users\Leclerc\Desktop\test python 8n.py", line 107 if nvage >= 100 : ^ IndentationError: unindent does not match any outer indentation level Tu peux m'expliquer d'ou vient cela stp. Merci d'avance pour toutes réponses.
@reploadbeat4862
@reploadbeat4862 5 жыл бұрын
Une erreur d’indentation replace tes tabulations correctement
@formation-video
@formation-video 5 жыл бұрын
Oui, fais bien des tabulations pour indenter ton code +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@franckcorniquet
@franckcorniquet 7 жыл бұрын
Merci toujours très intéressant et très rigoureux personnellement je travaille sur un environnement JS, Phaser, php, coffeeScript et on va au plus simple sans getter ou autres Mais c'est promis je vais essayer de me servir des accesseurs mm si cela me semble un peu lourd Encore un grand merci
@formation-video
@formation-video 7 жыл бұрын
Python a une autre philosophie que le C++ par exemple. Autant en C++ les accesseurs sont une règle à respecter strictement, mais en Python, c'est beaucoup plus libre et laissé au choix du développeur.
@danieldoman9150
@danieldoman9150 9 ай бұрын
Bonjour, Merci encore pour ces vidéos. Question svp : dans ce code, je n'ai pas compris comment il sait quelle fonction il doit appeler. lorsque nous faisons print(h1.age) , il appelle _getage et pour h1.age, il appelle _setage. Comment sait-il quel méthode appeler ? est-ce le fait qu'on demande une modification ? Merci de votre aide class Humain: def __init__(self, nom, age): print("creation d'un humain...") self.nom = nom self._age = age def _getage(self): return self._age def _setage(self, nouvel_age): self._age = nouvel_age age = property(_getage, _setage) #début du code h1 = Humain("Jason", 26) print(h1.age) h1.age = 20 print(h1.age)
@formation-video
@formation-video 9 ай бұрын
Bonjour, cela vient de la propriété définie avec l'appel à la fonction property()
@nicolassimier3370
@nicolassimier3370 2 жыл бұрын
Bonjour, Comment faire pour lire une propriété mère à partir d'une classe fille. Propriété mère qui est encapsulée. J'ai essayé mais je n'arrive pas. mon code ci-dessous : class animaux: def __init__ (self, race, age, poids): self.race = race self.__age = age self.poids = poids print ("Animaux créé") def __getage (self): return self.__age age = property (__getage) # Création classe fille class chien (animaux): def __init__ (self, race, __age, poids, couleur, sex): animaux.__init__ self.couleur = couleur self.sex = sex print ("chien créé") # programme principal an1 = animaux ("caniche", 10, 50) ch1 = chien ("lévrier", 10, 60,"beige", "mâle") print (ch1.age, ch1.sex, ch1.couleur) J'en profite pour te remercier pour tes vidéos qui sont supers instructives ! Merci par avance.
@formation-video
@formation-video 2 жыл бұрын
Bonjour, pour le partage de code : pastebin.com/
@vico7585
@vico7585 6 жыл бұрын
Salut J.C je ne comprends pas vraiment l'utilisation de "return" pourrais-tu stp m'aider?
@formation-video
@formation-video 6 жыл бұрын
J'ai vu que tu as compris après re-visionnage ;)
@hafidafid1864
@hafidafid1864 2 жыл бұрын
bonjour , tout d'abord je te remercie infiniment pour tes vidéos très instructives. j'ai fini avec mysql et là j'attaque python a cette vidéo 13 je rencontre mon premier obstacle. en effet la propriété d'encapsulation ne marche pas du tout pour moi sachant que j'ai reproduit exactement le même exemple, c'est quoi l'erreur d'après toi stp ? merci encore une fois .voici mon code: class Humain: def __init__(self, nom, age): print("creeation d'un humain") self.nom = nom self._age = age # (_) signifie que cette attribut (âge) est encapsulé (dispose de propriétés propres à lui) def _getage(self): return self._age def _setage(self, nouvel_age): if self._age > 50: self._age = 0 else: self._age = nouvel_age age = property(_getage, _setage) # property(,,,) h1 = Humain("sarah", 30) print(h1._age): h1._age = 55 print(h1._age)
@formation-video
@formation-video 2 жыл бұрын
Bonjour, la propriété que tu as défini est "age" (pas "_age"), c'est donc elle à appeler dans tes affichages. Aussi, tu peux interdire l'accès à l'attribut en amont en écrivant un double tiret du bas devant le nom, soit : pastebin.com/FcS7y00a
@unluka6469
@unluka6469 4 жыл бұрын
Bonjour, Je voulais savoir quel est la logique derrière les setters, car on ne passe pas de paramètre, j'aurais tendance à écrire h1.age(30) pour définir l'âge au lieu de h1.age = 30, qu'est ce qu'il se passe concrètement ? Merci beaucoup :) Par exemple, si j'avais créé une fonction qui fait office de setter, j'aurais très bien pu faire hi.age(30), donc je ne comprends pas non plus vraiment l'utilité...
@formation-video
@formation-video 4 жыл бұрын
Et bien quand on affecte une nouvelle valeur à un attribut, si cet attribut est englobé par une propriété munie d'un setter, c'est elle qui sera appelée pour faire l'opération de changement de valeur de l'attribut ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@centermania2769
@centermania2769 4 жыл бұрын
Mais j ai une question , pourquoi n'utilise pas t on tout simplement les méthodes accesseurs et getteur en dehors de la classe pour récuperer les attributs d un objet ? Le passage avec property rajoute une étape pour rien non ? On pourrait simplement récuperer l age de l objet avec ces méthodes comme ca en dehors de la classe: h1 = Humain('Robert', 16) print(h1._getage()) Quel est le but d'utiliser 'property' ??
@formation-video
@formation-video 4 жыл бұрын
Les propriétés fonctionnent comme un filtre, et sont appelées implicitement lorsque l'on fait accès ou une modification d'un attribut. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@daniilgalstyan2008
@daniilgalstyan2008 3 жыл бұрын
Je ne comprends pas vraiment pourquoi on utilise get avec des choses simples comme ici def _getage(self): return self._age Pourquoi je veux obtenir l'age alors que de toute facon je vais le mettre dans par exemple h1 = Humain("kaka", 18) ou bien dans un print ! ?
@formation-video
@formation-video 3 жыл бұрын
Ici, c'était un exemple simple. On peut bien évidemment faire davantage de choses dans la méthode getage(), comme faire des tests, renvoyer l'attribut sous certaines conditions, filtrer, etc.
@brahimmellal3227
@brahimmellal3227 5 жыл бұрын
Bonsoir, Tout d’abord, merci beaucoup pour vos vidéos, j’apprends vraiment de vous et je suis également suivez votre formation sur Linux, J'ai un petit souci au sujet des propriétés, je veux créer des propriétés pour le nom, et je remarque un problème au moment de l'éxécution du programme, je veux savoir si vous pouvez m'aider et m'ortienté comment je dois faire et pourquoi? Merci beaucoup. le code est comme suit : ''' Propriété : maniére de manipuler | controler des attributs principe d'encapsulation ''' class Humain : """ cette classe represente un humain """ def __init__(self,nom,age) : print('\tCréation des personnages') self._nom = nom self._age = age def _getage(self) : return self._age def _setage(self, nouvel_age) : if nouvel_age < 0 : self._age = 0 else : self._age = nouvel_age def _delage(self) : del self._age # propriété ( , , , ) def _setnom(self, nouveau_nom) : if nouvel_nom != '' : self._nom = nouvel_nom else : print("vous devez taper un nom reel") def _getnom(self,nouveau_nom) : return self._nom nom = property (_setnom, _getnom) age = property (_getage, _setage, _delage, 'je suis l\'age d\'un humain') # programme principale h1 = Humain('Robert', 25) h1.nom ='Albert' h1.age = 26 print(h1.age) print(h1.nom) # l'orsque l'excusion File "C:\Users\Brahim\Desktop\Python-S13", line 58, in # print(h1.nom) # TypeError: _setnom() missing 1 required positional argument: 'nouveau_nom' #
@formation-video
@formation-video 5 жыл бұрын
Bonjour, peux-tu plutôt passer par un site comme pastebin pour montrer ton code ? Ce sera plus lisible merci 🙂 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@Enzo-js5uv
@Enzo-js5uv 4 жыл бұрын
Bonjour à toi, ca fait longtemps mais bon je décide de te répondre. 1) Dans la méthode _setnom, tu as le paramètre nouveau_nom alors que dans cette méthode tu demandes " si nouvel_nom != '' " donc il ne connait pas la variable nouvel_nom. 2) Tu n'as pas du bien comprendre le but d'une fonction "getteur". Dans ta méthode _getnom, tu mets en paramètre nouveau nom alors que c'est juste un getteur et tu ne comptes pas changer de nom avec cette méthode. 3) Dans ton : nom = property (_setnom, _getnom) Tu inverses simplement _setnom et _get_nom de place. # propriété ( , , , ) Dans les fonctions, il faut respecter l'ordre des paramètres. Et là, tu as mis le setteur _setnom en premier et le getteur _getnom en second alors que c'est l'inverse. Infos : un getteur return toujours quelque chose.
@stromystgr2418
@stromystgr2418 Жыл бұрын
salut Jason , dis j'ai une question elle peut paraitre idiote mais depuis le temps il y a une question que je me pose j'ai remarqué que lorsque que tu créais une nouvelle méthode et que tu mettais un argument en paramètre et en l'occurrence ici le setter qui a était définit dans la class récupère automatique la nouvelle variable de age qui est = 20 ( indiquer dans le programme principal ) et se stock dans la nouvelle variable qui est ici nouvelle_age (indiqué dans la methode setage ) sans que tu es fait une affection a cette nouvelle variable réellement ......j'arrive pas a comprendre comment l'affection s'est faite de façon automatique j'espère que tu as compris ma question j'attend des éléments de réponses merci …merci pour les vidéos de très bonne qualité au passage
@formation-video
@formation-video Жыл бұрын
Bonjour, quel moment de la vidéo exactement ?
@loloolaf6359
@loloolaf6359 7 жыл бұрын
merci ce point je l'ai compris en deux visionnage j'en voulais donc une confirmation ^^. sinon pour la lecture c'est la methode "getter " mais l'idée est la .😅
@formation-video
@formation-video 7 жыл бұрын
Oui c'est bien ça, tu as bien compris :)
@gazoubo
@gazoubo 6 жыл бұрын
J'arrive pas à comprendre dans quel cas de figure il faut faire appel a l'encapsulation :/
@formation-video
@formation-video 6 жыл бұрын
L'encapsulation permet de filtre/contrôler l'accès (lecture) et la modification des attributs. Par exemple, tu peux grâce aux propriétés interdire la modification d'un attribut, ou alors selon certaines conditions. De même, tu peux empêcher la lecture d'une information
@ibrahimhakem5953
@ibrahimhakem5953 2 жыл бұрын
20:29 j'aime pas trop la technique que tu as utiliser car la valeur de âge est retournée en String se qui est dommage, je préfère de mettre une condition ternaire dans le format c peut être moins pratique mais on aura la valeur de age en int
@formation-video
@formation-video 2 жыл бұрын
Tu peux faire comme cela t'arrange et avec le format nécessaire pour les manipulations que tu voudras faire avec l'attribut 👍
@bastienltn7417
@bastienltn7417 5 жыл бұрын
Salut Jason, déjà Bravo pour toutes tes vidéos très claires et vraiment pédagogiques !! Petite question que je me pose suite à ta vidéo sur l'encapsulation / propriétés : Est-il normal de ne plus pouvoir lire / modifier un attribut hors de sa classe, à partir du moment ou l'on crée une propriété dessus sans définir de Getter ni Setter ?? Je pense que le fait de mettre une "property" sans définir les Getter et Setter vérouille l'ensemble lecture / modification, vu que rien n’est précisé .. Dis moi si je me trompe :) class Sadida : def __init__ (self, pseudo) : print ("Création d'un nouveau Sadida.") self.pseudo = pseudo pseudo = property () Sadida1 = Sadida ("Bobby") print ("Nom : {}".format (Sadida1.pseudo)) Sadida1.pseudo = "Tommy" print ("Nom : {}".format (Sadida1.pseudo))
@formation-video
@formation-video 5 жыл бұрын
Salut, tu dois en effet définir tes méthodes pour l'accès à l'attribut car par défaut, aucune méthode ne sera définie pour les accesseurs (puisque les paramètres de property ne sont pas obligatoires) : pastebin.com/Gi3JjPnq +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@bastienltn7417
@bastienltn7417 5 жыл бұрын
Super, je l'avais bien compris comme ça alors :) Merci à toi @@formation-video
@formation-video
@formation-video 5 жыл бұрын
De rien 😉 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@michaelm-g996
@michaelm-g996 5 жыл бұрын
Une question ce coup-ci sur les propriétés, y a t'il un sens de priorité à mettre en 1er getter et setter car si je mets que un setter ou getter en second cela ne fonctionne pas est ce normal
@formation-video
@formation-video 5 жыл бұрын
Cela est propre au principe des fonctions : - Soit il faut indiquer les arguments dans l'ordre où la fonction les attend - Soit on les indique dans l'ordre voulu, mais en mettant explicitement le nom de chaque argument Si besoin de rappels, (re)voir la vidéo sur les fonctions 🙂 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@michaelm-g996
@michaelm-g996 5 жыл бұрын
@@formation-video effectivement j'avais un tout petit peu oublié ce petit détail.. merci du rappel.. !!
@formation-video
@formation-video 5 жыл бұрын
De rien, bonne continuation pour la prochaine séance Python ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@mickad1982
@mickad1982 5 жыл бұрын
Bonjour Jason Tout d'abord un grand merci pour cette série de vidéos très sympa qui nous permet de nous familiariser avec ce langage. J'ai une petite question concernant les propriétés. Ayant un passif de dev web je suis habitué a utilisé les getter et les setter. En php l’intérêt d'avoir un getter ou un setter, c'est d’accéder à l'attribut d'un objet sachant que celui-ci est défini en private et donc inaccessible hors de la classe. Or ici en python malgré l'encapsulation de l'attribut avec property, l'attribut self._age est toujours accessible en dehors de la classe. Du coup je ne vois pas bien l'intérêt du getter ou du setter dans ce cas. Pourrais tu m'éclairer ? Merci et continue à nous faire partager ton savoir
@formation-video
@formation-video 5 жыл бұрын
Bonsoir, en effet la philosophie de Python est bien différente concernant l'encapsulation. Maintenant, si tu définies une propriété sur un attribut, il faut jouer le jeu et passer par cette propriété qui elle se chargera de manipuler l'attribut, voilà la petite distinction Généralement, pour l'attribut, on ajoutera un _ avant son nom alors que la propriété n'en aura pas. Et ce sont les getters/setters qui iront lire/modifier l'attribut (celui avec le underscore). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@mickad1982
@mickad1982 5 жыл бұрын
FormationVidéo ok merci pour ta réponse rapide. On va essayer d’adopter la philo phyton. Bon courage pour la suite de tes vidéos
@formation-video
@formation-video 5 жыл бұрын
Bon courage ! ✌ +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@caascade
@caascade 7 жыл бұрын
bonjour, peux-tu expliquer d'où vient le "none" obtenu vers la minute 13 stp ? après avoir défini l'exception dans le cas où l'âge n'existe pas, le dernier "print(h1.age)" du programme principal devrait seulement retourner le message d'erreur et pas une valeur none non ?
@formation-video
@formation-video 7 жыл бұрын
Bonjour, si tu regardes dans le code principal, tu vois que j'essaie d'afficher l'âge de h1 alors que je l'ai supprimé avant. Donc, l'interpréteur Python renvoie "None" car cet attribut n'existe plus :).
@caascade
@caascade 7 жыл бұрын
merci pour ta réponse :) bien sûr. je m'étais emmêlé les pinceaux avec l'exception définie dans le getter... idéalement (ça serait pas très utile mais c'est pour être spur de bien comprendre), pour éviter d'avoir ce 'none' il faudrait éviter de passer directement par un print dans le programme principal mais plutôt passer par une fonction d'affichage qui n'afficherait rien dans le cas d'une exception levée par le getter
@formation-video
@formation-video 7 жыл бұрын
Oui par exemple, on est d'accord que dans un vrai programme, on ne s'amuse pas à afficher un simple "None" à l'utilisateur qui ne comprendrait pas =)
@bastiendubroca756
@bastiendubroca756 7 жыл бұрын
Bonsoir, j'ai une question : si je souhaite mettre dans property uniquement getter et helper par exemple comment je peux faire ? J'ai essayé de mettre helper= mais ça ne marche pas. Merci
@bastiendubroca756
@bastiendubroca756 7 жыл бұрын
En fait c'est bon j'ai trouvé sur internet, ils sont nommés : fget= , fset= , fdel= , doc= Bonne soirée :)
@formation-video
@formation-video 7 жыл бұрын
Voilà, tu dois marquer chaque champ en facultatif :)
@magalivert573
@magalivert573 6 жыл бұрын
Bonjour, encore un problème à 6mn36 de votre vidéo. En cmd à la ligne 25 il me met : in , print(h1.age) AttributError:'humain' object has no attribute 'age'. Par contre si je met l'enderscore avant age ça marche mais vous dans votre vidéo c'est sans.
@formation-video
@formation-video 6 жыл бұрын
Regarde si ton code est identique au mien car tu as du faire une erreur de frappe :)
@magalivert573
@magalivert573 6 жыл бұрын
J'ai trouvé mon erreur. A la ligne 19 j'ai décalé la ligne avec une tabulation. 😋 sorry.
@formation-video
@formation-video 6 жыл бұрын
Ah voilà, bien si c'est corrigé alors :)
@crepintchicaya3647
@crepintchicaya3647 3 жыл бұрын
Besoin d'aide sur un projet de python(MySQL) sur la gestion de scolarité
@formation-video
@formation-video 3 жыл бұрын
Quel rapport avec les propriétés d'encapsulation ? Sinon : jasonchampagne.fr/me-contacter
@twice1753
@twice1753 3 жыл бұрын
Rah le principe et la logique je comprend mais venant de java la mise en place et l'utilisation me paraisse saugrenu.
@formation-video
@formation-video 3 жыл бұрын
En Python, la philosophie est légèrement différente. On ne va pas nécessairement avoir des attributs privés. Donc, y avoir accès depuis l'extérieur n'est pas étonnant avec ce langage (là où on va principalement l'interdire avec un autre langage et passer par des accesseurs/mutateurs)
@mouadsardi3371
@mouadsardi3371 6 жыл бұрын
Bonsoir ! j' ai une petite question, dans un prog j ai pas besoin d un getter mais besoin de modifier le nom par exemple ? je met property( , _setnom) ca marche pas ! y a t il une solution ou bien j aurai tjrs besoin de definir le getter et puis le setter meme si j ai pas besoin du getter
@formation-video
@formation-video 6 жыл бұрын
Dans le cours sur les fonctions, j'ai expliqué qu'il fallait respecter l'ordre des paramètres d'une fonction, à moins de préciser le nom des arguments. Pour la propriété, il faudra donc faire -> property(fset = _setnom)
@mouadsardi3371
@mouadsardi3371 6 жыл бұрын
FormationVidéo voila ca marche, merci a vous !
@formation-video
@formation-video 6 жыл бұрын
Super :)
@marouxi1077
@marouxi1077 7 жыл бұрын
Salut, je voulais savoir si il est possible de créer des classes dans une classe. Ex: une classe Animaux dans laquelle il y aurait une classe vertébrés et invertébrés. Ma question peut sembler bête mais ça m'est venu comme ça ^^. Sinon, c'est super ! Continus et peut-être bientôt les 15K !
@formation-video
@formation-video 7 жыл бұрын
Bonjour, chaque classe doit être définie séparément. Pour avoir ce genre de hiérarchie, je t'invite à voir la prochaine vidéo sur l'Héritage, tu vas tout de suite comprendre. A bientôt ! =)
@marouxi1077
@marouxi1077 7 жыл бұрын
D'accord, merci !
@formation-video
@formation-video 7 жыл бұрын
Pas de quoi :)
@redouaneabegar5490
@redouaneabegar5490 5 жыл бұрын
Salut jason, j'ai essayé d'exécuter le _setage mais il fonctionne passachant que j'ai écrit le meme code que toi. pourras-tu m'aider?
@formation-video
@formation-video 5 жыл бұрын
Coucou, peux-tu montrer tout ton code ? Merci =) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@redouaneabegar5490
@redouaneabegar5490 5 жыл бұрын
@@formation-video je vais te tager sur discord et je te l'envoie bien sûr
@formation-video
@formation-video 5 жыл бұрын
D'accord, ça marche :) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@remyvequaud7492
@remyvequaud7492 7 жыл бұрын
Bonjour et merci pour tes videos très instructive , j'ai néanmoins une petite question sur les accesseur si tu définie un property du type _getage comme tu la fait quesqui m'empêche de faire h1._age = 12. en tapant directement sur l'attribut et non pas sur la property age ? est-ce que l'interpréteur et assez malin pour associer age ( property) et _age dans une class ?
@remyvequaud7492
@remyvequaud7492 7 жыл бұрын
aprés quelque recherche j'ai je pense trouver ma réponse en effet il n'est pas possible de définir un attribut privé comme cela peu être le cas en C++. on pourrais donc en théorie toujours modifier la valeur des attribut sans passer par les accesseur .
@formation-video
@formation-video 7 жыл бұрын
Coucou, c'est très simple, à partir du moment où tu as défini des propriétés sur les attributs, en tentant de lire un des attributs ou d'en modifier un, il sera exécuté le code de sa méthode associée. Donc, si tu fais directement h1._age = 12, la méthode définie comme propriété pour cet attribut sera lue.
@remyvequaud7492
@remyvequaud7492 7 жыл бұрын
D'accord bcp pour ta réponse, continue tes videos elles sont vraiment bien calme didactique au top quoi !!!
@formation-video
@formation-video 7 жыл бұрын
Merci à toi, et bonne continuation dans le suivi des séances =)
@aliciatavernier5115
@aliciatavernier5115 6 жыл бұрын
Bonjour Jason, j'ai un petit soucis avec le setage et le getage, j'ai l'impression que ce n'est pas pris en compte car la condition ne passe pas, mon nombre négatif s'affiche tel quel et cela fait 2h que je cherche en vain. Voici mon code: #PROPRIETES class Humain: def __init__(self, nom, age): print("Création d'un humain...") self.nom = nom self._age = age def _getage(self): return self._age def _setage(self, nage): if nage < 0: self._age = 0 else: self._age = nage #property() age = property(_getage, _setage) #PROGRAMME PRINCIPAL h1 = Humain("Jason", 26) print(h1.age) h1.age = -5 print(h1.age)
@formation-video
@formation-video 6 жыл бұрын
Coucou, ton code est correct mais je pense que tu as des erreurs à cause de certaines indentations mal faites, donc attention avec ça. Voilà ton code correctement indenté : pastebin.com/7Xk8X2z7 Ca affiche donc bien "26" au départ, puis "0"
@aliciatavernier5115
@aliciatavernier5115 6 жыл бұрын
Après j'utilise Gedit, c'est peut être la cause car même avec ta version, cela ne fonctionne pas :/
@formation-video
@formation-video 6 жыл бұрын
normalement ça ne devrait pas poser problème. Juste, vérifie que tes fichiers ouverts dans Gedit sont bien encodés en UTF-8
@aliciatavernier5115
@aliciatavernier5115 6 жыл бұрын
C'est bon, j'ai réussit, en faite, je tapais la commande "python" pour exécuter mon code mais chez moi, c'est un raccourcit pour python2, du coup j'ai juste eu à le lancer en python3, merci quand même :)
@formation-video
@formation-video 6 жыл бұрын
Oui, c'est le cas si tu es sur GNU/Linux ;)
@newjersey7365
@newjersey7365 4 жыл бұрын
Bonjour, merci beaucoup pour cette vidéo de qualité mais je rencontre néanmoins un problème : En effet, quand je crée la fonction def_setage et met la condition le message suivant apparaît : RecursionError: maximum recursion depth exceeded in comparison
@formation-video
@formation-video 4 жыл бұрын
Bonjour, peux-tu montrer ton code ? ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@newjersey7365
@newjersey7365 4 жыл бұрын
FormationVidéo Class Age(): def __init__(self) : self.age = input(´Veuillez indiquer votre âge ‘) def _getage(self): return self.age def _setage(self,legal_age): if self.age < 7 : print (‘Attention jeu déconseillé au moins de 7 ans’) else : self.age = legal_age age = property(_getage, _setage)
@formation-video
@formation-video 4 жыл бұрын
Pas mal d'erreurs dans ton code en effet, et attention aux minuscules/majuscules à mettre comme il faut dans le code : pastebin.com/ww1dUrFF ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@newjersey7365
@newjersey7365 4 жыл бұрын
FormationVidéo Merci du fond du coeur de prendre du temps pour traiter mon problème ! 😁
@listen2meet
@listen2meet 2 жыл бұрын
Comment permettre à un utilisateur de changer de classe lorsque son niveau a dépassé un certain seuil ? :) Doit-on insérer une propriété qui contrôle le dépassement du niveau et donc l'évolution du personnage par exemple ?
@formation-video
@formation-video 2 жыл бұрын
Tu dois effectivement mémoriser quelque part le niveau requis (minimum) pour pouvoir changer de classe de compétences 👍
@listen2meet
@listen2meet 2 жыл бұрын
​@@formation-video Très bien j'ai compris merci beaucoup :)
@slimamal
@slimamal 4 жыл бұрын
Merci encore une fois pour votre disponibilité. A vrai dire cette partie est un peu délicate.. ça fait 5h que je suis sur la vidéo et j arrive pas a comprendre l utilité des deux fonctions _getage et _setage... Je me demande si ces deux fonctions ne peuvent pas être remplacer par des methodes "classiques" dans lesquelles on impose des conditions de saisi sur les propriétés (age et nom)??
@formation-video
@formation-video 4 жыл бұрын
En fait il y a un peu de cela : - On écrit deux méthodes (une qui donnera la valeur d'un attribut), l'autre qui permettra de la changer. - On définit une variable comme propriété, qui sera appliquée à un attribut et rattachée aux deux méthodes. - Désormais, en faisant les instructions de base (objet.attribut ou objet.attribut = nouvelle_valeur), cela appellera implicitement les méthodes définies comme getter et setter ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@rachidou_benaissa
@rachidou_benaissa 6 жыл бұрын
Bonsoir Jason, c'est rachid c'est vraiment tres interessant ce que vous faites. voila ,j'ai suivi toute vos video, ils sont claires et faites de maniere simple et claire. j'essayerai de ne pas vs embeter avec des kestions evidentes jusqu'au jour dans cette procedure d'encapsulation j'ai retaper le code tel k'il est dans la video en respectant la syntaxe et tous mais la condition sur la fonction _setage( if ) est passive en d'autres termes voic le code(ecrit python 27) tel ke je l'ai ecrit #coding:utf-8 class Humain: def __init__(self,c_nom,age): self.nom = c_nom self._age = age def _getage(self): return self._age def _setage(self,nouvel_age): if nouvel_age < 0: self._age = 0 print age else: self._age = nouvel_age age = property(_getage,_setage) # programme h1 = Humain('jason',-10) print(h1.age) h1.age = -8 print(h1.age) en sortie j'ai -10 -8 merci
@formation-video
@formation-video 6 жыл бұрын
Alors ça fonctionne, sauf que dans la partie du programme, tu dois faire h1._age = -8 (tu as oublié le _ avant le mot "age"). Aussi, je t'invite la prochaine fois à partager du code en passant par pastebin ( pastebin.com/ ), ce sera plus lisible :)
@rachidou_benaissa
@rachidou_benaissa 6 жыл бұрын
cher Jason tjrs -8 en sortie !!!!!!!!!! meme avec h1._age = -8
@formation-video
@formation-video 6 жыл бұрын
N'oublie pas aussi le _ à la ligne où tu définies la propriété. Donc -> _age = property(_getage, _setage)
@rachidou_benaissa
@rachidou_benaissa 6 жыл бұрын
ca y est merci bcps Jason.......
@formation-video
@formation-video 6 жыл бұрын
De rien :) !
@minataaruyo5525
@minataaruyo5525 3 жыл бұрын
Bonjour ! Je voulais savoir si on peut encapsuler une classe dans une autre classe. Je suis actuellement en train d'écrire un code pour un projet de cours et je voulais utiliser des piles dans ma classe. Comme les piles ne sont pas définies par défaut en python, j'ai donc recréer une classe simple avec les méthodes empile, depile, pile_vide et creer_pile mais malgré cela, ma classe principale considère toujours les piles comme non définies. En tout cas merci beaucoup pour vos vidéos, elles m'ont beaucoup aidées pour créer ma classe jusque maintenant !
@formation-video
@formation-video 3 жыл бұрын
Bonjour, tu fais ta classe de Pile dans un fichier (module), que tu importeras à ton autre fichier Python où tu les utilises 👍
@korperdere1783
@korperdere1783 7 жыл бұрын
Merci beaucoup encore une fois.. Juste deux questions si vous avez le temps : class Humain: def __init__(self, nom_humain, age): self.nom_humain = nom self._age = age Pourquoi self._age ne s'écrit pas self.age (ou alors remplacer l'attribut "age" par "_age) ? Je pensais qu'il fallait que ce soit strictement égal. ----------------------------- def _getage(self): print ("L'âge n'est pas accessible.") def _setage(self, nouvel_age): if nouvel_age < 0 self._age_humain = 0 else: self._age_humain = nouvel_age age = property(_getage, _setage) Si j'écris une commande qui modifie l'âge : est-ce que l'attribut âge va passer par toutes les propriétés : _getage, et _setage ? Ou simplement _setage ?
@formation-video
@formation-video 7 жыл бұрын
Bonsoir :). Alors dans le constructeur attention, la variable "age" est le paramètre que l'on passe lorsque l'on créée un objet (donc une instance), et self._age est un attribut de l'objet (auquel on a mis un "_" devant pour voir qu'il aura une propriété l'encapsulant. Pour la modification, si tu fais un *self.age = 25* par exemple, on va lire la propriété, voir qu'il y a une méthode pour la modification (_setage) et on va exécuter cette méthode, et seulement elle, pas les autres :).
@korperdere1783
@korperdere1783 7 жыл бұрын
D'accord, merci pour vos explications.. J'ai compris pour la première partie. Pour la deuxième, c'est le fait que la propriété comporte "_set" dans son nom qui permet d'appeler la méthode si on essaie de modifier la variable ? Ca me paraît bizarre... On n'aurait pas pu mettre par exemple "_blabla" comme nom de méthode ? En fait, comment sait-on que telle méthode dans la propriété sera appelée ou non, si on essaie de lire ou modifier une variable ? (Merci encore pour votre réponse)
@formation-video
@formation-video 7 жыл бұрын
Alors oui, tu peux nommer la méthode comme tu veux, c'est la property() qui est le plus important. Elle prend en 1er paramètre, la méthode pour le get, en second la méthode pour le set, et éventuellement la méthode pour suppression et la doc. Donc, tu peux très bien avoir ce code là : pastebin.com/XzEXkEDG
@korperdere1783
@korperdere1783 7 жыл бұрын
Dac j'ai compris Merci :)
@formation-video
@formation-video 7 жыл бұрын
De rien :)
@mohamed6167
@mohamed6167 2 жыл бұрын
Bonjour , pourriez - vous m'expliquez s'il vous plaît pourquoi le message inclus dans le constructeur (Création d'un Humain...) s'affiche même si on a spécifié dans print h1.age c'est à dire je voudrais avoir accès à l'attribut âge uniquement ?
@formation-video
@formation-video 2 жыл бұрын
Bonjour, il suffit tout simplement d'enlever le print dans la méthode init() 👍
@mohamed6167
@mohamed6167 2 жыл бұрын
@@formation-video ok merci
@formation-video
@formation-video 2 жыл бұрын
De rien
@mohamed6167
@mohamed6167 2 жыл бұрын
Bonjour , s'il vous plaît j'ai une question , Comment l'interpréteur reconnaît l'age pour qu'il le mette à 0 sachant qu'on a fait if nouvel_age < 0 sans faire le traitement en utlisant la variable âge directement, pour ce fait il faut qu'il ait une affectation nouvel _age = age je voudrais dire faire un rapport pour qu'on puisse effectuer le traitement sur nouvel_age , comment ça marche ?
@formation-video
@formation-video 2 жыл бұрын
Bonjour, à quel moment précis de la vidéo ?
@mohamed6167
@mohamed6167 2 жыл бұрын
@@formation-video Quand on voulait tester si l'âge est inférieur à 0 dans la propriété setage
@mohamed6167
@mohamed6167 2 жыл бұрын
@@formation-video j'aimerais un coup de main merci ?
@chapristi4116
@chapristi4116 3 жыл бұрын
bonjour j'ai une question dans property est ton obligé de commencer par get ou set ou pouvons nous mettre n'importe quoi?
@formation-video
@formation-video 3 жыл бұрын
Si tu as compris le cours sur les méthodes, ce sont donc des paramètres nommés. Tu peux les indiquer dans l'ordre que tu veux lors de l'appel 👍
@chapristi4116
@chapristi4116 3 жыл бұрын
@@formation-video d'accord
@madarauchiwa4987
@madarauchiwa4987 3 жыл бұрын
mon seul defaut est que je me décourage vite après chaque tuto sa me prend au moins 1 a deux mois avant d'avoir le courage de continuer un autre par contre je fait toujours une révision sur le tuto précédent c'est qui permet de farder sa en mémoire actuellement j'ai 19 ans est ce qu'il n'est pas trop tard pour j'apprend a programmer
@formation-video
@formation-video 3 жыл бұрын
Ce n'est pas grave si cela prend du temps. L'important ce n'est pas d'aller vite, mais que tu assimiles les notions et sache pratiquer, et qu'à l'arrivée, tu sois capable d'utiliser ce langage pour concevoir des programmes 😉
@madarauchiwa4987
@madarauchiwa4987 3 жыл бұрын
@@formation-video ok merci 😊
@formation-video
@formation-video 3 жыл бұрын
De rien
@ousmanedembele8044
@ousmanedembele8044 Жыл бұрын
super 👍
@philtoa334
@philtoa334 4 жыл бұрын
ca a marché a 19'24". :: return str(self._age) + "an" :: au lieu de :: return " Bobby a {}".format(self._age, "an") :: Merci beaucoup pour vos videos , elles sont vraiment de qualités. j espere arriver au bout de votre serie python .
@formation-video
@formation-video 4 жыл бұрын
Oui, tant que tu renvoies une donnée de type str, ça fonctionnera 😉 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@maxence857
@maxence857 7 жыл бұрын
Continue tu aide vraiment ne laisse pas tomber s'il te plaît
@formation-video
@formation-video 7 жыл бұрын
Bonjour, ça ne risque pas ;) !
@fredericleduic6398
@fredericleduic6398 3 жыл бұрын
N'est ce pas au contraire très important de définir un deleter (pour la gestion de la mémoire) ?
@formation-video
@formation-video 3 жыл бұрын
Python gère tout cela tout seul
@joelkisaka2921
@joelkisaka2921 9 ай бұрын
def _getage(self): ^ IndentationError: unindent does not match any outer indentation level Bonsoir je suis buté à ce niveau que faire?
@formation-video
@formation-video 9 ай бұрын
Corriger la mise en forme de ton code : kzbin.info/www/bejne/hWTOc4apfM6lla8
@theprofessionalnoob6735
@theprofessionalnoob6735 3 жыл бұрын
Bonjour, avant tout, merci beaucoup pour vos vidéos. J'ai 2 petites questions : " getter " , " setter " , " deleter " et " helper " sont ils des mots de " convention " ? Car j'ai l'impression que les modifiés ne pose pas de problème. Comment est-ce que Python sait quelle paramètre choisir ? Par exemple, choisir _getage au lieu de _setage.
@formation-video
@formation-video 3 жыл бұрын
Bonjour, ce sont comme dit des noms choisis ici mais qui peuvent être nommés autrement. Ce qui compte, c'est l'ordre dans lequel on indique les méthodes dans property() 👍
@ericfrancoishaba1433
@ericfrancoishaba1433 3 жыл бұрын
Python v3.9.6 Je suis sur VS Code, je ne sais pas si cela a quelque chose à voir, mais j'ai cette erreur: in age = property(_getage) NameError: name '_getage' is not defined Et pourtant j'ai ça: def _getage(self): return self._age age = property(_getage) print(h1.age) Comme dans le cours. Bien à vous
@formation-video
@formation-video 3 жыл бұрын
Tu dois avoir une erreur dans ton code, par exemple celui-ci fonctionne : pastebin.com/0UMD2xvM
@ericfrancoishaba1433
@ericfrancoishaba1433 3 жыл бұрын
@@formation-video Merci pour le retour coach, en fait je viens de m'apercevoir que mon code avait un problème d'intentation sur la methode property() -> " age = property(_getage)" ne devrait être sous le même niveau d'intentation que celui de la classe "Humain", mais plutôt sur celui des "méthodes" tout en dehors biensûr. C'est terrifiant ce genre d'erreur
@formation-video
@formation-video 3 жыл бұрын
Voilà qui explique tout 😉
@Moneylisey
@Moneylisey 4 жыл бұрын
Bonjour, vous avez énoncé les méthodes spéciales qui devraient être abordées dans une autre vidéo. Pourriez-vous indiquer de quelle vidéo il s'agit?
@formation-video
@formation-video 4 жыл бұрын
Bonjour, ça a été publié en annexe dans la playlist des tutoriels de Python : kzbin.info/www/bejne/jqm4kqaBbctgqZI ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@mohamedamineelhail231
@mohamedamineelhail231 4 жыл бұрын
Bonjour,je vous remercie pour votre meilleur contenu👌👌une petit question ,je veux savoir l'intérêt de mot ''None '' qui s'affiche à la fin de texte d l'execution,et mrc .
@formation-video
@formation-video 4 жыл бұрын
Bonjour "None" idnique qu'il n'y a rien ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@sylvainballerini239
@sylvainballerini239 5 жыл бұрын
Merci pour la vidéo ! concernant les attributs privés on interdit l'accès comme vous l'avez fait ? Enfin concernant les getters et les setters ils ont pour but que de modifier ou retourner l'attribut ? ... c'est pas un peu dangereux qu'il fasse autre chose comme renvoyer une chaine avec le get (en mettant " an" ou "ans" ? cordialement
@formation-video
@formation-video 5 жыл бұрын
Les propriétés sont des filtres (d'accès pour le getter, de modification pour le setter). Admettons que tu pars du principe qu'à chaque fois qu'on veut retourner l'âge, on veut afficher le mot "an/ans" derriere, tu auras donc filtré le résultat. Le développeur a demandé l'âge, et on lui aura retourné le résultat filtré "X ans". Ce n'est en rien une obligation (on peut directement et simplement retourner la valeur de l'attribut en question), mais c'est une possibilité 😉 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@sekoubatoure603
@sekoubatoure603 3 жыл бұрын
Vraiment vous expliquez bien, je vous donne 100 Etoiles et tous mes respects, à travers vos différentes formations sur les différents langages de programmations , j'ai appris énormément de choses et j'ai eu une très bonne base en python, malgré ma filière n'est pas l'informatique , mais l'informatique notamment la programmation me passionne naturellement.
@formation-video
@formation-video 3 жыл бұрын
Content pour toi, bon courage pour la suite de ce que tu apprendras 😉
@joelkisaka2921
@joelkisaka2921 9 ай бұрын
merci je viens de le faire et c'est OK🤩🤩🤩
@formation-video
@formation-video 9 ай бұрын
👍
@ytasphixia_7072
@ytasphixia_7072 4 жыл бұрын
les 12 premiers cours étaient faciles, mais lui je galère vraiment, mais j'adore la difficulté
@formation-video
@formation-video 4 жыл бұрын
Un peu de pratique et de programmes faits de ton côté t'aideront à y voir plus clair et à bien assimiler ces différentes notions, pas d'inquiétude 🙂 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@obed818
@obed818 2 жыл бұрын
Est ce que il y a un moyen natif d’empêcher pour de vrais l’utilisateur de changer ou accéder à une variable, car dans ce cas la j’ai pus tester que je crée comme une sorte de copie d’un attribut mais n’influence pas directement sur lui; je peut acceder à self._age et il me permet de jouer avec car self._age != age ?
@obed818
@obed818 2 жыл бұрын
Clair vidéo en tout cas cool 🙏
@formation-video
@formation-video 2 жыл бұрын
Tu écris un double tiret du bas : pastebin.com/ws3W9tey
@obed818
@obed818 2 жыл бұрын
@@formation-video ah c’est cool mais ça date de tres récemment je pense ? Je suis sous python 3.9.8 et j’obtiens une erreur AttributeError: 'User' object has no attribute '__name'
@formation-video
@formation-video 2 жыл бұрын
Cela masque les attributs, donc empêche depuis l'extérieur d'avoir un accès directement, c'est ce que l'on veut. Il faut donc obligatoirement passer par l'accesseur. Et non, cela n'est pas récent 👍
@obed818
@obed818 2 жыл бұрын
@@formation-video ah désolé j’ai pas réfléchi mdr j’suis trop à l’ouest 😅
@supermoymoy8341
@supermoymoy8341 6 жыл бұрын
Bonjour Jason J'ai encore une fois une question à te poser x), le noms des propriétés getter, setter etc sont elles conventions pour les reconnaître ou es que python va vraiment interpréter une fonction _getquelquechose différemment d'une fonction basique. Exemple : Dans ton exemple si au lieu de créer une fonction _getage je l'appelle renvoie_age, es que je peux donc faire age=property(renvoie_age)
@formation-video
@formation-video 6 жыл бұрын
Bonjour, oui tu le peux, l'important c'est la définition de la propriété avec justement le age = property() et les paramètres bien passés :)
@supermoymoy8341
@supermoymoy8341 6 жыл бұрын
FormationVidéo D'accord merci c'est super sympa de répondre aussi vite
@formation-video
@formation-video 6 жыл бұрын
Pas de quoi ;)
@supermoymoy8341
@supermoymoy8341 6 жыл бұрын
Je ne comprends pas à quoi servent les mots setter getter etc
@formation-video
@formation-video 6 жыл бұрын
Ce sont des noms que l'on connaît généralement en programmation. Mais tu peux appeler tes méthodes comme tu veux. Juste qu'une fonction qui renvoie un attribut est par habitude appelée un "getter", et celle qui modifie l'attribut un "setter". L'ensemble forme ce que l'on appelle les accesseurs.
@Enzo-js5uv
@Enzo-js5uv 4 жыл бұрын
Bonjour, suite à cette vidéo, ca fait 4h que je m'entraîne. Mais je n'ai pas bien compris un point. C'est le fait de manipuler l'attribut en dehors de la classe. Quand vous faîtes h1.age = 20 Peux-t-on faire h1._age = 20 ? Mon hypothèse : Oui on peut le faire mais ca ne passe pas par la méthode _set_age donc c'est inutile et c'est au développeur qui utilise la classe de faire attention à ne pas modifier des attributs du genre _age. Peux-t-on faire h1._set_age(20) ? Mon hypothèse : Vu qu'il y a un _ devant, ca représente le fait qu'on doit éviter de l'appeler même si elle a le même effet que h1.age = 20. Lequelle doit-on faire finalement. Merci d'avance :) 2) Oui j'avais une deuxième question rapide ;). quand on fait juste property() sans attribut, on observe que python bloque le get et le set comme a = 3, print(a) print(a == 3), ... je voulais savoir si on peut faire ce property() tout seul pour simplement bloqué l'accès aux utilisateurs qui utilise notre module par exemple ou si on doit mettre ces fameux getteur et setteur (deleter, doc...)
@formation-video
@formation-video 4 жыл бұрын
Bonjour : - en effet, j'ai indiqué que Python suit une politique plus souple quant aux attributs (comparé à C++, Java ou même PHP). Donc rien n'empêchera l'accès à l'attribut si on passe par la syntaxe de l'attribut (plutôt que celle de la propriété définie). Dans tous les cas, on fera appel à la syntaxe indiqué comme nom de variable pour l'instance de property (exemple : pastebin.com/XKyahM1s, on appelle les accesseurs via p.level et p.level = value ) - Pour la classe property(), son constructeur n'attend aucun argument obligatoire, donc on peut tout à fait l'appeler en faisant juste property(), ce qui ne définira aucun accesseur, donc bloquera la lecture, la modification et la suppression de l'attribut. ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@Enzo-js5uv
@Enzo-js5uv 4 жыл бұрын
@@formation-video D'accord, merci de votre réponse 😄. Du coup, on ne doit pas utiliser de p.set_level(6) au lieu de p.level = 6 si j'ai bien compris. (Et on fait encore moins p._level = 6 ça j'ai compris vu que ça ne fait aucun traitement sur la property) Sinon ça me paraît clair, encore merci^^
@formation-video
@formation-video 4 жыл бұрын
Pas de quoi, à bientôt Enzo 👋 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@horiageorgescu430
@horiageorgescu430 3 жыл бұрын
je n'ai pas compris à quoi bon créer un attribut si on peux créer une variable
@formation-video
@formation-video 3 жыл бұрын
Un attribut est lié à une instance de classe et sera donc détruit quand l'instance sera détruite, c'est donc différent d'une simple variable
@horiageorgescu430
@horiageorgescu430 3 жыл бұрын
Merci beaucoup !
@formation-video
@formation-video 3 жыл бұрын
👍
@zx1668
@zx1668 10 ай бұрын
Excellente video comme d'habitude merci à toi, mais y a une petire subtilité qui me turlupine, pourquoi le setage ne fonctionne pas quand j'essaye de changer l'age directement sur le h1 = Humain("nom", age) , je met qqch en dessous de 0 mais il ne m'affiche pas 0 pour autant
@formation-video
@formation-video 10 ай бұрын
Il faudrait voir ton code au complet
@zx1668
@zx1668 10 ай бұрын
@@formation-video Eh bien c'est exactement le même que dans ta vidéo avec la classe, getage, setage,delage et en programme principal juste h1 = Humain("Nom", -20) print(h1.age)
@zx1668
@zx1668 10 ай бұрын
@@formation-video class Human: def __init__(self, name, age): print("Creation of a human...") self.name = name self._age = age def _getage(self): try: return self._age except AttributeError: print("The age doesn't exist anymore") def _setage(self, new_age): if new_age < 0: self._age = 0 else: self._age = new_age def _delage(self): del self._age age = property(_getage, _setage, _delage, "I'm the age of a human") # Main Programm h1 = Human("Zedix", -20) print(h1.age)
@formation-video
@formation-video 10 ай бұрын
Cela est logique, regarde ton code : tu initialises un objet, donc cela passe par la méthode init(), qui affecte directement l'âge passé en argument à self._age (dans ton cas, le -20). A ce stade, la méthode _setage n'est jamais appelé. Si tu veux filtrer dès la création d'un objet, il faut l'appeler dans init() : pastebin.com/w601iYmG
@zx1668
@zx1668 10 ай бұрын
@@formation-video Oh d'accord je comprend mieux maintenant, oui en effet j'ai omis le détail que tout s'exécute dans l'ordre même dans une classe, et j'ignorais qu'on pouvait faire appel à un type de propriété directement dans le constructeur, merci beaucoup !
@givinsstaelkoudimba7211
@givinsstaelkoudimba7211 3 жыл бұрын
En une phrase comment tu pourrais résumer le et le ??
@formation-video
@formation-video 3 жыл бұрын
Getter permet de récupérer (get) un attribut, et le setter de modifier (set) la valeur d'un attribut, c'est tout
@givinsstaelkoudimba7211
@givinsstaelkoudimba7211 3 жыл бұрын
@@formation-video merci beaucoup
@formation-video
@formation-video 3 жыл бұрын
De rien
@saargh105
@saargh105 3 жыл бұрын
rebonjour, pour ce qui est de la propriété _delage, j'ai effectivement un "AttributError, mais parce que " can't delete attribute" any idea ???
@formation-video
@formation-video 3 жыл бұрын
Quel est ton code ?
@saargh105
@saargh105 3 жыл бұрын
rebonjour , j'ai fais un essais de code avec juste un setter en recopiant le code que vous montrez dans la vidéo: class Humain: def __init__(self, nom, age): print("création d'un humain ...") self.nom = nom self._age = age def _setage(self, nouvel_age): if nouvel_age
@saargh105
@saargh105 3 жыл бұрын
désolé de vous embêter encore mais je voudrais être certain d'avoir bien compris le principe d'encapsulation après beaucoup de souffrance cérébrale et de lectures, je crois avoir enfin capter que si effectivement les arguments get, set, del et doc étaient optionnels, ils devaient néanmoins , si ils sont déclarés, suivre un ordre bien précis (ordre que vous décrivez d'ailleur assez clairement dans votre vidéo) pour illustrer ma réflexion, je testé le code que ci dessous en ajouter une fonction get_age => return self._age.... et ça fonctionne !!! auriez vous la gentillesse de me dire si oui ou non je suis sur la bonne voie pythonesque en vous remerciant d'avance
@formation-video
@formation-video 3 жыл бұрын
Ton erreur AttributError vient des paramètres indiqués dans property(). Comme expliqué dans la vidéo sur les fonctions, soit tu indiques chaque paramètre dans l'ordre, soit les paramètres facultatifs que tu veux, mais il faut les nommer. Dans ton cas, comme tu ne renseignes que le setter, il faut le préciser : pastebin.com/R4Ljm40e
@saargh105
@saargh105 3 жыл бұрын
@@formation-video d'abord un tout grand merci pour vos réponses effectivement j'avais pas bien capté que j'omettais de nommer mes arguments , je suppose que les noms des autres arguments sont fget, fdel et doc impatient de réaliser mon jeu de combat naval , je passe peut être un peu trop vite d'une vidéo à l'autre encore merci pour vos cours
@laurentreynaud4404
@laurentreynaud4404 3 жыл бұрын
Bonjour, Avant tout je voulais vous remercier pour cette vidéo, mais j'ai une question : est-ce qu'on doit obligatoirement passer par un getter pour faire un setter ?
@formation-video
@formation-video 3 жыл бұрын
Bonjour, non du tout
@arnochansarel4990
@arnochansarel4990 3 жыл бұрын
@@formation-video C'est vrai qu'en recopiant entierement le code de @FormationVidéo puis en supprimant la fonction _getage (ainsi que _getage dans property) j'ai un message d'erreur, et après avoir tenté de retourner le problème dans tous les sens il n'y a qu'en laissant la fonction _getage que _setage fonctionne
@theblooder
@theblooder 3 жыл бұрын
@@arnochansarel4990 il suffit de faire property(fset = _setage)
@DonTarken
@DonTarken 3 жыл бұрын
Tout d'abord merci pour ton travail. J'aimerais savoir si @property decorator revient au même que ce que tu présentes dans cette vidéo, merci.
@formation-video
@formation-video 3 жыл бұрын
On peut en effet établir des propriétés via les décorateurs (comme montré ici : kzbin.info/www/bejne/gpqlpIl5jaaajqs )
@DonTarken
@DonTarken 3 жыл бұрын
@@formation-video Merci pour ta réponse. Comme je regarde les vidéos grâce à la playlist cours je n'avais pas fait attention que tu en parlais dans une autre playlist ;)
@formation-video
@formation-video 3 жыл бұрын
😉
@totolerigolo35
@totolerigolo35 3 жыл бұрын
Personnellement, on m'a appris que lorsque l'on veut que notre attribut soit privé, on devait préfixer par deux underscores et pas seulement 1 en python.
@formation-video
@formation-video 3 жыл бұрын
Oui, on peut faire cela
@ayradizem2770
@ayradizem2770 Жыл бұрын
d'après ce que j'ai appris c'est que l'utilisation de 2 underscores se fait seulement pour les attribut spéciale par exemple en relation avec la sécurité du programme , les autres attribut avec 1 seul underscore
@xiangxiang6849
@xiangxiang6849 4 жыл бұрын
Bonjour, merci pour cette formation. Je voudrais savoir si l'attribut de la classe peut avoir une propriété _getage pour ajouter les différents textes 'An' et 'Ans'?
@formation-video
@formation-video 4 жыл бұрын
Oui, dans ta méthode getter, tu mets bien le code que tu veux si tu veux retourner autre chose que seulement la valeur de ton attribut, c'est le but 😉 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@xiangxiang6849
@xiangxiang6849 4 жыл бұрын
@@formation-video Merci pour ta réponse. J'ai essayé de définir une propriété pour l'attribut de la classe comme 'Humain.humainNumber += 1', mais je ne sais pas comment définir 'property' avec un attribut comme ça: humainNumber = property(_getage) ?
@formation-video
@formation-video 4 жыл бұрын
Le mieux est que tu testes pour voir si ton idée fonctionne 😉 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@blaisedubreuil7897
@blaisedubreuil7897 4 жыл бұрын
quand je fait un gettage le terminal m'affiche une TabError au niveau des deux point de ma fonction _gettage
@formation-video
@formation-video 4 жыл бұрын
Sans voir ton code, ça va être difficile de trouver l'origine de l'erreur ;) ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@rachidboucenna8484
@rachidboucenna8484 3 жыл бұрын
T'es au top Jason...
@formation-video
@formation-video 3 жыл бұрын
Merci 👍
@senbusinesssenegal3320
@senbusinesssenegal3320 5 жыл бұрын
Tout simplement SUPER
@formation-video
@formation-video 5 жыл бұрын
✌ +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@not_jordxniq2144
@not_jordxniq2144 Жыл бұрын
Même après 5 ans on y est
@formation-video
@formation-video Жыл бұрын
Bon visionnage ✌
@zecksidd4102
@zecksidd4102 4 жыл бұрын
il y'a quelque chose que j'ai du mal à comprendre def __init__(self, nom, age): print("Création d'un humain...") self.nom = nom self._age = age là si j'ai bien compris "age" est un attribut de Humain mais après "self._age" est également un attribut non ? alors si c'est le cas pourquoi mettre un attribut dans un attribut et pourquoi pas mettre seulement self._age
@formation-video
@formation-video 4 жыл бұрын
Ce n'est pas exactement ça. La variable "age" dans ton code est un paramètre passé en argument au constructeur d'Humain lors de son instanciation. Et cette variable est alors mémorisée (sa valeur) dans une autre ("self._age") qui est un attribut de la classe, et dont la valeur sera stockée pour l'instance qui vient d'être créée. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@rickdrawing2389
@rickdrawing2389 5 жыл бұрын
Salut ! Je ne comprends pas pourquoi dans ton code à 12:55, à la ligne 39, comment tu as fais pour faire appel à la méthode "_delage"... Pourrais-tu m'éclaircir sur ce point ? Car si la méthode "_delage" n'existe pas et qu'on laisse "del h1.age", une erreur sera reconnue. Sinon continue ces vidéos, c'est juste génial ! :)
@formation-video
@formation-video 5 жыл бұрын
Bonjour. Justement, c'est le principe de la propriété définie à la ligne 31. On a indiqué que nous avons créé une méthode pour la suppression de l'attribut. Du coup, on utilisant l'instruction "del", c'est la méthode qu'on a défini qui sera appelée. Elle agit comme un filtre (à la manière du getter et du setter). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@rickdrawing2389
@rickdrawing2389 5 жыл бұрын
@@formation-video Ok ok je comprends désormais merci beaucoup :P
@rickdrawing2389
@rickdrawing2389 5 жыл бұрын
​@@formation-video Et juste également avec ce code là: pastebin.com/30deRVuF Lorsqu'un chiffre est donné pour le nom de la nouvelle marque, le nom de la marque ne sera pas modifié, mais ducoup, dans ce cas, est-il possible d'annuler la dernière ligne (ligne 22) ? Car ducoup la personne n'a pas modifié le nom de la marque, il n'a pas le droit de mettre des nombres dedans. :)
@formation-video
@formation-video 5 жыл бұрын
Alors il suffit de faire ton affichage pour indiqué que la marque a été changé, directement dans ton setter. Aussi, je t'ai montré comment vérifier plus proprement qu'une variable est un nombre : pastebin.com/HyKDicQe +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@nicolaschabot5463
@nicolaschabot5463 3 жыл бұрын
@@formation-video Bonsoir Jason, Peux-tu m'expliquer stp comment le "None" s'affiche en console à 12:40 ? Je comprends que la commande a entrainé la suppression de l'attribut . Ainsi, le getter renvoie la phrase en réponse à l'erreur générée, mais quelle ligne de code renvoie en console? Merci d'avance pour ton aide!
@pierrehavard3237
@pierrehavard3237 3 жыл бұрын
Super clair j'ai compris tt de suite
@formation-video
@formation-video 3 жыл бұрын
Bien 🙂👍
@michaelm-g996
@michaelm-g996 5 жыл бұрын
Une petite question mais qui a à voir avec sublime-text ..... :/ :/ Quel est ton scheme-color?
@formation-video
@formation-video 5 жыл бұрын
C'est Tomorrow Night Eighties +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@michaelm-g996
@michaelm-g996 5 жыл бұрын
@@formation-video Merci , Tu es super et ton contenu est super et limpide et j'apprends vite. Je partage et parle de tes formations ...
@formation-video
@formation-video 5 жыл бұрын
Merci à toi ! 👍 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@Globulov
@Globulov 2 жыл бұрын
simple claire précis, merci !
@formation-video
@formation-video 2 жыл бұрын
De rien, bonne suite sur le cours en Python 👍
@shiro420
@shiro420 7 жыл бұрын
Merci ! :D
@formation-video
@formation-video 7 жыл бұрын
De rien, bonne continuation :)
@Nicolas-lb9de
@Nicolas-lb9de 6 жыл бұрын
Et je capteeeeeeee pas la différence entre print et return :'(
@formation-video
@formation-video 6 жыл бұрын
La différence est simple : print() est une fonction permettant d'afficher du texte ou des variables, ou n'importe quelle information. return est une instruction pour demander dans une fonction de renvoyer une valeur vers la partie du programme qui l'a appelé
@yannfurrer1382
@yannfurrer1382 5 жыл бұрын
#coding:utf-8 class Humain: def __init__(self, nom, age): print("fer") self.nom = nom self._age = age def _getage(self): if self.age
@formation-video
@formation-video 5 жыл бұрын
En effet, ton erreur vient de la condition, tu as oublié le "_" pour ton attribut "age" +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@regisdivin4923
@regisdivin4923 3 жыл бұрын
merci beaucoup
@formation-video
@formation-video 3 жыл бұрын
De rien Régis 🙂
@abdellahmadrani2212
@abdellahmadrani2212 4 жыл бұрын
Vraiment Merciiiii bieenn :)
@formation-video
@formation-video 4 жыл бұрын
👍 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@emmanuel2472
@emmanuel2472 4 жыл бұрын
Super la vidéo
@formation-video
@formation-video 4 жыл бұрын
Merci Emmanuel ;) ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@josephbruneau6927
@josephbruneau6927 4 жыл бұрын
merci
@formation-video
@formation-video 4 жыл бұрын
👍 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@josephbruneau6927
@josephbruneau6927 4 жыл бұрын
Tkt c'est fait bien entendu.
Python #14 - héritage
35:12
FormationVidéo
Рет қаралды 99 М.
Modern Python logging
21:32
mCoding
Рет қаралды 189 М.
Every parent is like this ❤️💚💚💜💙
00:10
Like Asiya
Рет қаралды 18 МЛН
From Small To Giant Pop Corn #katebrush #funny #shorts
00:17
Kate Brush
Рет қаралды 71 МЛН
How do Cats Eat Watermelon? 🍉
00:21
One More
Рет қаралды 11 МЛН
Python #12 - méthodes
19:06
FormationVidéo
Рет қаралды 143 М.
Apprendre la Programmation Orientée Objets (POO) Python
30:25
This Is Why Python Data Classes Are Awesome
22:19
ArjanCodes
Рет қаралды 807 М.
Pydantic Tutorial • Solving Python's Biggest Problem
11:07
pixegami
Рет қаралды 275 М.
Python #17 - tuples
17:33
FormationVidéo
Рет қаралды 84 М.
Python Decorators in 15 Minutes
15:14
Kite
Рет қаралды 444 М.
If __name__ == "__main__" for Python Developers
8:47
Python Simplified
Рет қаралды 405 М.
LES REGEX : Tout savoir en 10mn !
10:31
WeLoveDevs Tech
Рет қаралды 6 М.
Проверил, как вам?
1:01
Коннор
Рет қаралды 1,5 МЛН
iPhone 16
0:20
Adhemz
Рет қаралды 13 МЛН
Evolution of the Samsung Galaxy
0:50
ios_aesthetics
Рет қаралды 6 МЛН
Телефон - самая грязная ваша вещь
0:24
Up Your Brains
Рет қаралды 1,7 МЛН