Python #11 - classes et attributs
Summary
TLDRLa vidéo numéro 11 d'une série sur Python se concentre sur la programmation orientée objet. L'animateur introduit les classes, objets et attributs, utilisant l'exemple de la classe 'humain' pour illustrer la création d'objets avec des attributs personnalisables. Il explique le concept de constructeur (__init__) et la différence entre les attributs d'objet et les attributs de classe, en montrant comment instancier des objets avec des valeurs par défaut et怎么样 modifiables. La session se termine avec une promesse d'explorer les méthodes et les propriétés dans les prochaines vidéos.
Takeaways
- 😀 Le script est une session d'apprentissage sur Python, en particulier sur la programmation orientée objet.
- 📝 L'enseignant a présenté les notions de base telles que les classes, les objets et les attributs.
- 👨🏫 Il a expliqué que les classes sont comme un plan de conception, tandis que les objets sont des instances créées à partir de ces classes.
- 🔑 Les attributs sont des variables qui définissent les caractéristiques d'un objet, comme le prénom, l'âge ou la taille d'un humain.
- 👶 L'enseignant a utilisé l'exemple de la classe 'Humain' pour montrer comment créer des objets avec des attributs spécifiques.
- 🛠️ Le mot-clé 'class' est utilisé pour définir une classe en Python, et le nom de la classe commence généralement par une majuscule.
- 📚 Il a mentionné l'utilisation de '__init__' comme constructeur pour initialiser les objets lors de leur création.
- 🔄 L'enseignant a expliqué comment utiliser des paramètres dans le constructeur pour personnaliser les objets lors de leur instanciation.
- 🎛️ Il a abordé la notion d'attributs de classe, qui sont partagés par tous les objets d'une même classe, contrairement aux attributs d'instance.
- 🛑 L'enseignant a insisté sur la différence entre les attributs de classe et les attributs d'instance, soulignant leur utilisation appropriée.
- 🔍 Il a montré comment accéder aux attributs d'un objet en utilisant la syntaxe 'objet.Attribut' et comment modifier ces attributs directement.
Q & A
Quel est le sujet principal de cette séance de formation Python numéro 11 ?
-Le sujet principal de cette séance est l'introduction aux classes et objets en Python, en commençant par la création de classes, l'instanciation d'objets et la définition d'attributs.
Pourquoi la formation inclut-elle une vidéo théorique sur la programmation orientée objet ?
-La vidéo théorique permet de présenter les notions de base de la programmation orientée objet, permettant aux étudiants de mieux comprendre les concepts avant de les mettre en pratique.
Quel est le rôle d'un constructeur dans une classe Python ?
-Le constructeur, méthode __init__, permet d'instancier des objets à partir de la classe. Il s'exécute lors de la création d'un nouvel objet et permet d'initialiser les attributs de l'objet.
Comment le script aborde-t-il la notion d'attributs dans les classes ?
-Le script explique que les attributs sont des variables qui définissent les caractéristiques d'un objet, comme un prénom ou un âge pour une classe 'Humain', et peuvent être définis dans le constructeur de la classe.
Quelle est la différence entre un attribut et un attribut de classe en Python ?
-Un attribut est spécifique à chaque instance (objet) de la classe, tandis qu'un attribut de classe est partagé par toutes les instances de la classe et n'appartient pas à un objet en particulier.
Pourquoi la convention est-elle de mettre une majuscule au début du nom des classes en Python ?
-La majuscule au début du nom de la classe est une convention pour faciliter la reconnaissance des classes et la différenciation des variables normales.
Comment le script illustre la création d'une instance d'une classe ?
-Le script montre la création d'une instance en appelant la classe avec des parenthèses et en assignant le résultat à une variable, comme `H1 = Humain()`.
Quels sont les éléments clés abordés dans le script pour la définition d'une classe en Python ?
-Les éléments clés abordés sont le mot-clé 'class', le nom de la classe avec une majuscule, la définition du constructeur avec `__init__`, et l'utilisation de 'self' pour référencer l'objet courant.
Comment le script explique-t-il la modification d'un attribut d'un objet en dehors de la classe ?
-Le script montre que les attributs d'un objet peuvent être modifiés directement en utilisant la syntaxe `objet.attribut = nouvelle_valeur`.
Quelle sera la suite du cours après cette séance sur les classes et les objets ?
-Après cette séance, le cours continuera avec la présentation des méthodes et des propriétés, qui permettent de donner des fonctionnalités aux objets créés.
Outlines
📘 Introduction à la programmation orientée objet en Python
La vidéo numéro 11 se concentre sur l'introduction à la programmation orientée objet (POO) en Python. Le présentateur revoit rapidement les notions précédemment introduites et explique l'importance de l'approche étape par étape. Il mentionne l'introduction des classes, des objets et des attributs, en utilisant l'exemple d'une classe 'humain' pour illustrer la création d'objets et l'ajout d'attributs tels que le prénom, l'âge et le genre. Il insiste sur la notion de classe comme un plan de conception et l'instanciation de classes pour créer des objets spécifiques.
🔍 Explication de la création de classes et de constructeurs en Python
Le paragraphe 2 décrit le processus de création de classes et de constructeurs en Python. Le présentateur utilise le mot-clé 'class' pour définir une classe 'Humain' et explique la convention de nommage en majuscules. Il détaille la création d'un constructeur avec le mot-clé 'def' et l'utilisation de 'self' pour faire référence à l'objet en cours de création. Il illustre la création d'objets en appelant la classe avec des paramètres initiaux et montre comment les objets sont instanciés avec des adresses de mémoire différentes, prouvant ainsi qu'ils sont distincts.
📝 Ajout d'attributs et de valeurs par défaut dans les classes
Dans le paragraphe 3, le présentateur explore l'ajout d'attributs à une classe et la définition de valeurs par défaut pour ces attributs. Il montre comment définir un prénom et un âge dans le constructeur et comment accéder à ces attributs en utilisant 'self'. Il explique également comment afficher les valeurs des attributs et comment modifier ces valeurs ultérieurement dans le code. Le paragraphe met en évidence la flexibilité de Python pour modifier directement les attributs des objets, contrairement à d'autres langages qui nécessitent l'utilisation d'accesseurs et de mutateurs.
👥 Personnalisation des objets avec des paramètres personnalisés
Le paragraphe 4 se concentre sur la personnalisation des objets en utilisant des paramètres personnalisés lors de l'instanciation. Le présentateur montre comment créer des objets 'Humain' avec des prénoms et des âges différents, en passant ces valeurs en paramètres au constructeur. Il souligne l'importance de comprendre les paramètres requis et les valeurs par défaut, et il illustre comment les objets peuvent être modifiés après leur création en attribuant de nouvelles valeurs aux attributs.
🏢 Comprendre les attributs de classe et leur utilisation
Dans le paragraphe 5, le présentateur introduit les attributs de classe, qui sont partagés par tous les objets d'une classe. Il différencie les attributs d'instance, qui sont spécifiques à chaque objet, des attributs de classe, qui sont accessibles par tous les objets de la classe. Il utilise l'exemple d'un compteur pour le nombre d'objets créés, en montrant comment déclarer et incrémenter un attribut de classe. Il explique comment cet attribut est partagé entre tous les objets et comment il est différent d'un attribut d'instance.
🚀 Conclusion et préparation pour la suite des leçons
Le paragraphe 6 conclut la vidéo en résumant les points abordés et en prévoyant les sujets futurs. Le présentateur récapitule l'introduction aux classes, aux objets, aux attributs et aux constructeurs, et annonce que les prochaines leçons couvriront les méthodes et les propriétés. Il exprime son désir de maintenir les leçons simples et accessibles pour les débutants, tout en préparant le terrain pour une compréhension plus approfondie des concepts de la POO en Python.
Mindmap
Keywords
💡Python
💡Classes
💡Objets
💡Attributs
💡Méthodes
💡Constructeur
💡Instantiation
💡Docstrings
💡Attributs de classe
💡Mots-clés
Highlights
Introduction à la programmation orientée objet en Python avec une approche étapée pour faciliter la compréhension.
Explication des classes comme plans de conception pour créer des objets.
La différence entre une classe et un objet, avec l'instanciation d'un objet à partir d'une classe.
Les attributs sont des variables de classe qui définissent les caractéristiques d'un objet.
Utilisation du mot-clé 'class' pour définir une nouvelle classe en Python.
Convention de nommage pour les classes avec une majuscule au début du nom.
La méthode spéciale '__init__' qui sert de constructeur pour initialiser les objets.
L'importance de la documentation avec des docstrings pour les classes et les méthodes.
Création d'objets avec des attributs personnalisés lors de l'instanciation.
Explication de l'identifiant 'self' utilisé pour faire référence à l'objet courant.
Modification dynamique des attributs d'un objet à l'exécution du programme.
La différence entre les attributs d'objet et les attributs de classe.
Utilisation d'attributs de classe pour stocker des informations partagées entre tous les objets d'une classe.
Démonstration de la création multiple d'objets et de la gestion de leurs attributs respectifs.
Discernement entre les méthodes et les fonctions, et comment les méthodes sont liées aux objets.
Préparation pour la prochaine vidéo qui couvrira les méthodes et les propriétés en plus des objets.
Transcripts
[Musique]
bonjour à tous bienvenue pour la séance
numéro 11 sur python la dernière fois
vous vous rappelez je vous avais fait
une petite pause en fait sur le la
formation avec une vidéo un peu
théorique pour vous présenter toutes les
notions qu'on aurait l'occasion de voir
avec le programmation orientée objet et
je vous avais dit qu'on allait comme ça
pouvoir voir les choses au fur et à
mesure que ce soit mieux abord que soit
beaucoup plus simple pour vous puisqu'on
attaque une partie déjà un petit peu
plus avancée que tout ce que vous avez
vu jusqu'à présent et que c'est mieux de
voilà de procéder par par étap plutôt
que d'aller trop vite donc on va
commencer par quelques petites choses je
vais reprendre un petit peu le le
document que en tout cas les notes que
j'avais que j'avais fait la dernière
fois sur la la précédente vidéo pour
vous puissiez un petit peu voir certains
termes que l'on va pouvoir bah tout
simplement présenter dans cette vidéo là
dans cette séance donc on va parler
évidemment des classes he puisquon va
commencer notre première vidéo sur
l'objet on va parler d'objet bien sûr ça
ça va de soi et on va parler d'attribut
également par la suite donc vous
rappelez hein je fais un petit rappel
très rapidement je vous avez dit queune
classe en fait c'était un plan de
conception un petit peu pour dire par
exemple bah tiens comment on pourrait
fabriquer un humain voilà un humain
peut-être une classe et qu'à partir de
là on peut créer des objets donc on peut
instancier une classe par exemple créer
un personnage qui s'appellerait Julien
par exemple un Julien en fait qui serait
donc notre objet de classe humain ou un
autre et cetera voilà on pourrait créer
instancier comme ça plusieurs objets et
là ces objets nous pourrions les
compléter en le rajoutant des attributs
je avez dit dit qu'un attribut c'était
une variable de classe en fait c'est
quelque chose qui permet bah tout
simplement de de le définir en fait
voilà donc qu'est-ce qu'on pourrait
donner à un humain qu'est-ce qu'un
humain peut avoir mais il peut avoir un
prénom il peut avoir un âge une taille
un genre et cetera donc on peut rajouter
plusieurs plusieurs choses comme ça et
ça permet de définir des attribut donc
on va se contenter de voir un petit peu
tout ça dans cette vidéo là il y aura
d'autres choses par la suite qu'on verra
pour la prochaine vidéo et ainsi de
suite pour pas que ça fasse trop trop
lourd en fait d'un coup mais qu'on
puisse voir au fur et à mesure comme je
disais au début on va directement
commencer ici et on va créer notre
classe donc on va reprendre l'exemple de
la classe humain alors pourquoi parce
que bah c'est quelque chose qui
est utile partout un petit peu partout
qui est suffisamment complet comme
exemple je pense et qui sera assez clair
pour tout le monde on saura de quoi on
parle ce sera je pense suffisamment
clair pour vous la meilleure méthode en
tout cas le moyen pour créer une classe
on va tout simplement utiliser un mot
clé du langage qui est le mot classe en
anglais bien sûr toujours pareil pour
pouvoir montrer que nous allons définir
je vous rappelis que quand on faisait
une fonction on utilisait le mot clé def
d'accord pour define qui permettit de
dire je vais définir une fonction que je
pourrais utiliser par la suite là on va
utiliser le motclé classe pour dire
voilà qu'on va créer une classe on va lu
donner un nom et par convention on lui
met une majuscule d'accord simplement
pour pouvoir les repérer facilement on
met une majuscule au début du nom de la
classe et si jamais vous avez plusieurs
mots pour définir sa classe par exemple
si votre classe elle s'appelle elle
s'appelait un humain et ben on aurait
plus tend tendance pardon à marquer
comme ceci c'està-dire qu'on met une
majuscule en fait à chaque début voyez
de nouveau mot tout attaché bien sûr un
pas d'espace on évite des underscore
parce que c'est pas forcément joli joli
ou pratique pour les classes on peut en
avoir he ça empêche pas il y en a qui le
font vous vous faites absolument comme
vous voulez mais je vous dit dans les
dans l'idéal comme ça c'est suffisamment
lisible on peut se contenter de ça c'est
très bien comme ça donc nous on va faire
au plus simple on va faire une classe
humain voilà tout simplement et comme le
langage Python bah n'utilise pas de on
va dire d'acol à d'ut comme d'autres
langages on n'oublie pas les deux points
comme pour le la définition d'une
fonction et là la ligne avec la petite
tabulation on va pouvoir définir notre
classe voilà tout simplement c'est juste
ça d'accord absolument juste ça ça là on
va définir alors on viendra plus tard on
va définir une méthode un peu
particulière on parlera des méthodes
dans la vidéo suivante ou peut-être une
prochaine d'après pas pour tout de suite
on va éviter trop comme j'ai d de trop
avancer sur cette vidéo là mais il y a
une méthode très spéciale que nous
allons voir qui s'appelle le
constructeur je vous avais dit qu' une
classe CIT tout simplement une un schéma
un peu de conception comment tu
fabriqueris un humain et ben voilà la
classe te permet de d'en créer ou un
animal ou ça peut être un comment
s'appelle un gestionnaire pour un jeu
vidéo ça peut-être la fenêtre par
exemple de votre interface graphique
tout ce genre de chose ce sont des
classes qu'on pourrait retrouver dans un
logiciel un programme un jeu vidéo ou je
ne sais quoi encore donc on a une petite
méthode particulière qui va s'appeler
init donc c'est une vous verrez on aura
l'occasion d'aborderer ces méthodes un
peu particulière parce qu'il y en a
plein d'autres mais on va se contendre
de celle-là qui va faire office de
constructeur elle va permettre bah de
construire des objets donc des
d'instancier des classes en créant des
objets on va faire comme pour si vous
voulez comme pour la création d'une
fonction les méthodes vont se définir de
pareil on va utiliser le mot clé def
alors avant ça par contre mettre une
petite une petite indication en fait
vous allez mettre comme ça trois petits
donc double guillemets vous pouvez en
mettre d'autres et vous pouvez comme ça
mettre une petite définition en fait
pour votre votre classe on aura
l'occasion ça aussi d'en parler dans une
vidéo annexe mais vous pouvez comme ça
faire une petite description de votre
classe d'accord classe des êtres humains
alors c'est un peu on va dire pas
forcément utile comme comme doc string
mais peu importe donc pourquoi une do
string en fait bah c'est une chaîne de
documentation qui va permettre de
documenter votre code mais je ferai une
vidéo annexe je pense un tutoriel en
tout cas qui sera disponible pour pour
voir les docen pour comprendre un petit
peu comment ça fonctionne c'est
peut-être même déjà en ligne à l'heure
où je fais cette vidéo parce que
rappelez-vous que je fais les vidéos
pour que ce soit à jour en tout cas dans
plusieurs mois plusieurs années donc
peut-être que d'ici là la vidéo est déjà
en ligne sur la sur la chaîne et vous
pourrez retrouver comme ça les docreen à
quoi ça sert voilà comment documenter
son code donc on va juste contenter de
ça n on va faire quelque chose de très
simple et on va créer le constructeur on
utilise le mot clé def comment on le
ferait pour une fonction comme vous
l'avez vu donc je recommande bien
évidemment de bien être à l'aise avec
toutes les anciennes les anciennes
vidéos hein ça va de soit sinon vous
allez galérer un petit peu pour les pour
tout ce qui est objet et on va lui
mettre un double rappelez-vous c'est le
souligner donc le le tirer en fait du 8
il je j'insiste bien il y en a bien deux
d'accord c'est pas c'est pour ça qu'il
est long c'est pas euh un seul symbole
en fait c'est vraiment deux d'accord il
y a deux caractères parce que on mavais
déjà demandé ça une fois dans une dans
un commentaire et on met le mot-clé init
et je remets un double
voilà j'ouvre des parenthèses comme pour
une fonction et je vais mettre un petit
mot un petit un petit paramètre je vais
en parler un petit peu après on met les
deux points voilà comme pour la création
d'une fonction et là je vais mettre le
mot passe pour dire voilà bah en fait tu
ne fait rien tout simplement on va
rester là et on va quitter la classe
d'accord rappelez-vous ici on est plus
dans la classe he pu qu'on est plus sur
la tout ce qui est en tabulation fait
partie de la classe dès qu'on revient en
retrait on y est plus dedans donc là ici
je peux je peux mettre par
exemple lancement du
programme par exemple voilà et on pourra
cré une classe alors si je teste bien
sûr comme ça parce qu'on va commencer
par tester
directement voilà donc là on voit bien
que le programme s'est lancé il ne s'est
rien passé bien évidemment je n'ai fait
que définir c'est comme pour une
fonction j'ai défini une classe comme
j'aurais défini une fonction mais je
n'ai jamais appelé cette classe ou je
n'ai jamais créé d'instant donc voilà
c'est bien on a défini la chose mais
c'est tout maintenant qu'on a un petit
peu notre petite boîte d'accord on a
notre petite boîte avec notre
constructeur de cette boîte donc d'umain
en l'occurrence on aimerait pouvoir
instancier on va donc créer un objet qui
sera de classe humain et cet objet on va
le stocker dans une variable que c'est
dire que en créant l'objet je vais vous
expliquer un petit peu après on va en
fait créer une instance cette instance
va être stockée pardon dans une variable
et cette variable pourra être utilisée
pour faire pas mal de choses après avec
donc nous on va l'appeler justement
Julien alors faut pas forcément bon
utiliser ça parce que si en plus plus
tard ça un attribut le prénom et puis
qu'on veut changer de prénom appeler une
variable Julien c'est un petit peu c'est
un peu bizarre en fait donc je vais même
pas l'appeler comme ça je vais l'appeler
par exemple H1 pour humain numéro 1 par
exempleà parce que j'ai pas j'ai pas
beaucoup d'idées on va dire pour le pour
le nom et on va tout simplement mettre
le nom de la classe et des parenthèses
d'accord tout simplement là je lui dis
dans H1 tu fais appel en fait à humain
d'accord c'est une classe il va la
reconnaître puisquelle est définie avant
et là je vais appeler vous ne voyez rien
puisque je ne fais que pass au niveau du
constructeur donc si on veut être plus
clair nous on va enlever le Pass du coup
qu'on va faire quelque chose on va lui
dire tout
simplement création d'un
humain voilà l'ession de serouve dans un
un système de produit de création de
robot sauf que là ce sont des êtres
humains c'est un peu étrange voilà je
réexécute le code et vous voyez qu'il
passe bien effectivement dans le
constructeur il crée un humain donc pour
résumer qu'est-ce qui se passe quand
vous faites ceci on fait appel à la
classe d'accord il va chercher une la
fameuse méthode init donc qui est
constructeur il va le chercher il va
voir comment il est défini donc là on a
mis que self mais je vous expliquer ce
que c'est self en fait c'est tout
simplement ce qui cible l'objet lui-même
qu'on est en train de créer là bah on
fait certaines choses donc là on fait
qu' afficher un petit texte et ensuite
ça va rendre donc c'est comme ça même si
vous voyez que là il y a pas de Return
le constructeur va rendre self donc
c'estàdire il va rendre l'objet que l'on
vient de créer et tout ça donc tout ce
qui est retourné l'objet on va le
stocker grâce à l'affectation ici dans
H1 qui est notre variable avec laquelle
on va pouvoir faire plein de choses par
la suite pour le moment on va pas faire
grand chose mais par la suite ce sera
très utile voilà vous avez ben vous
savez en tout cas comment créer une
variable donc la définir et comment
instancier créer une variable créer une
classe par contre je je suis un petit
peu fatigué je me mélange les pinceaux
et instancier une classe en créant un un
objet voilà ici l'objet H1 c'est aussi
simple il y a pas de pas plus compliqué
enfin il y a pas plus simple en tout cas
on peut pas faire plus Simp et c'est pas
plus compliqué que ça c'est vraiment
vraiment très très simple à mettre en
œuvre et là on va pouvoir travailler
avec ça je peux en créer un deuxième
d'accord je peux très bien créer h de
qui sera un autre humain et vous allez
voir que je vais avoir deux fois la
ligne création d'un humain puisque j'en
crée absolument deux d'accord lancement
du programme il en crée un il en cré un
deuxème alors on sait pas qui est qui
puisquon l'a pas détaillé mais il est là
voilà on sait qu'en tout cas il est là
il y a pas de souci d'ailleurs on peut
s'amuser à faire ceci vous voyez je mets
un virgule avec un self et là vous voyez
il vous met des adresses bizarres alors
on voit que ce sont pas à fait les mêmes
adresses 001 AB 7 7 B8 et là c'est 7 F0
donc c'est une adresse en fait qui
permet de vérifier en fait où se trouve
bah l'adresse en fait de l'objet qu'on a
créé donc il vous met main bon ça c'est
parce que c'est le programme principal
on l'avait vu la dernière fois ça que
main en fait c'était bah le code
principal voyez que ça parai un savec de
double ord il vous met point humain qui
est un objet d'accord a donc stocké en
fait à l'adresse Intel voilà en mémoire
et cetera donc on arrive bien comme ça
distinguer les deux on voit que ce sont
pas les mêmes donc il y a bien deux
objets qui ont été créés c'est pas juste
c'est pas juste caché ou de la triche il
y a vraiment deux objets que nous avons
créés voilà pour ça alors je vais
enlever le C que pas utile ça sert à
rien de l'afficher puisqu'il est
retourné voilà ça c'est la partie
création définition de classe création
de classe donc et instantiation pour
créer des objets donc vous savez faire
ça nous on va compléter maintenant avec
des attribut les attributs euh alors de
base un attribut il va appartenir à une
classe seulement à elle donc nous
l'humain on va lui définir des attributs
comment on va les définir on peut les
définir dans le constructeur tout
simplement donc on peut dire par exemple
que on va avoir un prénom donc moi je
vais dire par défaut je vais utiliser
self parce que rappelez-vous que self
c'est un peu l'identifiant qui vise en
fait l'objet que vous êtes en train de
créer donc c'est lui-même c'est moi-même
alors sur moi sur cet objet qu'est-ce
que je fais et ben je mets un point je
vais définir un attribut donc un
attribut c'est tout simplement une vari
qui appartient à une classe c'est pas
voilà il y a pas à chercher plus loin
c'est juste une variable mais sauf
qu'elle appartient à une classe elle est
pas comme ça se balader n'importe où
voilà on va mettre prénom on va rester
avec des noms français
exceptionnellement d'habitude je fais du
code en anglais mais là on va rester sur
quelque chose en français pour changer
un petit peu égal puisquon fait une
affectation on va lui donner un nom
d'accord on mettre par exemple Jojo
voilà d'accord self prénom Jojo c'est
son prénom et on peut lui définir un âge
pourquoi pas on peut dire par exemple
que tous nos humains par défaut ont un
an d'accord on crée des PE um tout
simplement et là alors vous allez rien
voir bien évidemment puis qu'on aura on
verra rien par rapport à ça mais on aura
cré C attribut on peut s'amuser à
l'afficher pourquoi
pas non onffichera plus tard on va déjà
voir ça donc évidemment à l'exécution
vous ne voyez rien de différent par
contre je peux sans problème les
afficher Je vais mettre un
print print pardon et je vais mettre par
exemple prénom de
h1 d'accord on va utiliser une méthode
comme on avait déjà utilisé avant
rappelez-vous format hein parce qu'elle
permet comme ça de bien formater le
texte correctement et comment on va
comment on va récupérer en fait cette
variable ici comment je peux accéder à
au prénom en fait de l'objet et bien
l'objet il faut son identifiant en le
code principal quand vous êtes dans la
classe en elle-même son identifiant
c'est self que c'est lui-même donc c'est
facile self voilà my c'est moi-même
himself c'est lui-même et cetera en
anglais donc là ici on a pas de self
dans le code principal je vous rappelle
que le code principal c'est à partir du
print que j'ai mis là par contre son
identifiant on le voit c'est les
variables qu'on a utilisé c'est H1 donc
on va dire que c'est H1 et sur H1 on va
accéder à quoi son prénom donc on met un
point et on met prénom voilà h1. prénom
c'est pour accéder à l'attribut prénom
de l'objet H1 qui est de classe humain
tout simplement et du coup là vous voyez
que le prénom de h1 c'est bien Jojo il
arrive à l'afficher il y a pas de souci
à ce niveaulà je pourrais faire pareil
avec là je pourrais faire a n'importe ça
avec n'importe quoi le souci c'est que
bah là voyz j'ai j'ai défini en fait
comme pour une fonction j'ai défini des
choses en fait par défaut c'est le
prénom je peux pas choisir ce que je
veux ça je pourrais demander
éventuellement à l'utilisateur de
choisir un prénom mais nous on parle de
développement développement moi
j'aimerais pouvoir choisir par exemple
lorsque je développe créer un humain
directement avec le nom que je veux avec
un âge différent pas forcément tous les
mêmes je pas créer des clones à moi de
vouloir refaire un un Star Wars
éventuellement mais je vux pouvoir créer
des humains différents du coup je vais
éviter de faire juste un accès comme ça
ici je vais placer ces attributs donc
dans des paramètres alors vous allez
rien apprendre de nouveau là puisque ça
fonctionne comme les fonctions n'oubliez
pas que le constructeur c'est c'est une
méthode et c'est ça fonctionne comme une
fonction donc tout ce que vous avez vu
dans la vidéo des fonctions est tout à
fait applicable ici vous vous rappelez
les paramètres on peut en mettre un on
pe donc on peut en mettre deux plusieurs
des obligatoires on peut en mettre des
facultatifs en mettant des valeurs par
défaut et on pouvait également avoir une
infinité de paramètres pour l'objet
c'est la même chose rappelez-vous que
Python est tout objet donc il y a aucune
différent alors je va pas tout hein je
vais pas vous montrer les exemples sur
tout ce qu'on a vu avec les fonctions
puisque vous l'avez déjà vu il suffit de
revoir la vidéo sur les fonctions s'il y
a besoin de vous de faire quelques
rappels mais on va voir tout simplement
comment définir des attributs alors self
il doit toujours rester en premier voilà
on on décrit toujours en premier enfin
l'objet lui-même on le met on l'indique
toujours en paramètre c'est mieux de le
faire et après avec une virgule on peut
définir les attributs qu'on veut prénom
et âge tout simplement ce qu'on avait
pris tout à l'heure et là comment on va
pouvoir les en fait tout simplement les
associer à notre objet bah vous le savez
je pense que vous l'avez compris
rappelez-vous dans la classe l'objet
c'est quoi son identifiant c'est le
fameux self point et on va dire prénom
et on va le faire stocker par exemple
prénom alors je vais changer les noms
oui parce que ça va être un peu bizarre
euh qu'est-ce que je peux dire allez on
va mettre comme ça je vais mettre un C
pour classe
d'accord c'est un peu bizarre comme
terme mais c'est histoire qu'en fait
vous compreniez que ce sont vraiment des
variables différentes pas les mêmes
sinon vous allez penser que ce sont les
mêmes voilà d'accord vous voyez c'est
ces prénoms que je stock du coup dans
une variable d'attribut enfin un
attribut en fait voilà sur lequel je
crée des choses donc ça prénom h ça
appartient à la classe ces prénoms C ce
ne sont maintenant que des paramètres en
fait d'une fonction le constructeur est
une sorte de fonction tout simplement
une méthode d'accord et là je vais
pouvoir créer des humains différem alors
là si je reteste mon programme il va pas
être content parce qu'il lui manque deux
rappelez-vous paramètrre requis comme là
j'ai pas mis de valeur par défaut vous
vous souvenez par rapport à la vidéo sur
les fonctions je suis obligé de
renseigner les deux paramètres donc je
vais le faire ici ben je vais garder
Jojo voilà et puis ici je vais dire par
exemple que Jojo il a allez 34 ans
d'accord je va mettre on va mettre un
entier voilà 34 et puis là on va avoir
je sais pas moi Albert al je suis très
très très imaginatif sur les prénoms on
va mettre 17 voilà hop python il crée
bien les humains alors oui je l'ai
évidemment pas affiché ça c'est embêtant
euh et bien on va afficher ici on mettre
print prénom de
h1 changer tout simplement
oups si je le colle pas ça va poser
problème 1 point prénom et puis là on va
reprendre la même chose mais avec l'
cette fois-ci donc je fais un peu de
copiercoller voilà h2h1
OK et là on fait la même chose pour H2
montrer qu'il y av une différence he
sinon ça ne va évidemment avoir aucun
intérêt voilà ok donc j'ai rien fait
j'ai juste fa du copiercoller pour
afficher tout simplement chaque attribut
pour chaque objet H1 point prénom h h1.
h h2. Préneau H2 pardon point H et là on
a bien les informations différentes
d'accord je jou au 34 al 17 tout
simplement on a défini comme pour une
fonction d'accord on a on a choisi des
paramètres sur lesquels on peut rentrer
si par défaut ben je veux pouvoir avoir
un prénom bah je peux mettre he voilà
comme ceci comme pour ce qu'on a vu sur
les fonctions c'est exactement pareil ce
qui fait que euh si je mets par exemple
je sais pas moi euh
ouais si je fais
ça alors non C
pardon é= 34 et puis lui par exemple on
va laisser comme ça pourquoi pas voilà
alors par contre là il est pas euh ah
oui ce qu'il va me garder pour self ça
ça va être embêtant euh c'est pas ça que
je voulais faire attendez on va regarder
Jojo voilà plutôt comme ceci juste on va
garder comme là et on va mettre par
exemple que l'â par défaut sera égal à 1
donc ici je voyez je renseigne que le
prénom je renseigne pas d'âge et
normalement vous voyez il met
automatiquement là je pars défaut comme
pour les fonctions que là j' égal à
alors si j'ai mis pour le prier fa faire
gaffe parce qu'il y a le self donc sinon
il faudra que je je renseigne le self à
l'appel pour éviter bah faire respecter
l'ordre puisque ici implicitement on a
un premier le premier argument en fait
c'est pas prénom c'est l'objet lui-même
c'est un petit peu diff il y a une
petite distinction en fait une petite
différence par rapport aux fonctions
simples mais pour le reste c'est le même
fonctionnement tout pareil voilà donc on
peut après voyez on peut avoir des des
des des attributs pardon avec des
valeurs par défaut on peut avoir des
attributs une infinité d'attributs but
même si je vois pas trop l'utilité mais
pourquoi pas hein admettons et c'est des
choses qu'on peut faire sans problème en
objet ça fonctionnera et vous pouvez
définir des voilà des personnage comme
ça alors plus tard on verra que quand on
veut par exemple afficher le prénom ou
autre euh on peut faire comme ça il y en
a peut-être si vous avez fait notamment
d'autres langages de programmation objet
comme le C++ vous allez vous dire ouais
il affiche directement en fait les
attributs de d'un objet comme ça dans le
code alors que en C++ on n dit qu'il
faut pas faire ça faut utiliser ce qu'on
appelle des accesseurs hein les get
quelque chose get prénom get ge ou des
seturs quand on veut modifier faut
savoir que Python fonctionne pas sur les
mêmes règles d'accord python ne demande
pas on peut en faire he il y a des
accessoires on peut très bien faire ça
en python si on veut si on aime bien la
philosophie un peu du C++ là-dessus ou
d'autres langages comme le c#arp ou
autres on peut s'amuser à faire ça mais
en python de base il y a pas cette il y
a pas cette cette norme en fait de faire
des accesseurs c'est si on veut accéder
à un attribut et ben on met le nom de
l'objet point le nom de l'attribut si on
veut le modifier ben on mettra le nom de
l'objet point l'attribut égal autre
chose pourquoi je vous dis ça je vais
reprendre l'exemple ici de notre fameux
Jojo vous voyez que là j'ai affiché son
prénom son âge d'accord alors je vais
remettre autre chose ici c'était quoi 34
là que j'ava mis et d'un coup je vais
changer en fait un des attributs je vais
dire que H1 point prénom ça change
d'accord il va
s'appeler Thomas OK et du coup je vais
pouvoir afficher son nouveau prénom
d'accord vous voyez que le changement se
s'opère d'accord c'est que depuis le
code principal en fait j'ai pu modifier
un attribut d'une classe voilà en C++ ça
c'est au niveau de la norme c'est
interdit on estime qu'en fait la seule
chose qui qui peut modifier la classe
elle-même c'est enfin qui peut modifier
un attribut c'est la classe elle-même
c'est l'objet lui-même donc on passerait
par une fonction qui sera en fait une
fonction par exemple modifier le prénom
en fait et qui vérifiera en fait voilà
qu'on met le les des bonnes choses que
le nom est bien est bien dans les bonnes
conditions qu' y a pas de chiffre par
exemple qui a pas forcément de caractère
autorisé ce genre de chose ce qui
permettrait de faire des vérifications
en python on peut le faire mais ce n'est
pas obligatoire ça ne fait pas partie
des normes d'accord faire ça en python
c'est tout à fait normal tout à fait on
va dire dans les normes si vous faites
ça en c++ par contre vous allez vous
faire taper dessus par ceux qui
développent plus plus c'est pas la même
philosophie simplement voilà faut faut
respecter accepter les philosophies de
chacun des langages pas tout mélanger
non plus mais voilà là on est en python
donc vous pouvez faire ça ça pose aucun
problème le python voilà les gens
développent comme ça ça a toujours été
comme ça ça changera peut-être un jour
après il y en a qui veulent quand même
utiliser des accesseurs chacun est libre
chacun fait comme il veut si vous voulez
passer plus tard par une méthode comme
on le verra dans la vidéo suivante pour
modifier les attribu par exemple d'un
objet libre à vous ce sera pas moins
bien ce sera pas mieux ce sera
simplement différent tout simplement
voilà pour ses attributs notamment des
modifications donc on peut hein sans
problème modifier ces attributs modifier
ce genre de choses al on va pas faire
grand chose en cette vidéo parce que je
vous je veux pas aborder les méthodes
tout de suite pour pouvoir faire par
exemple va faire faire des choses à
notre objet sinon on va on va
directement dériver et rajouter du
contenu et je veux qu'on reste sur des
choses assez basiques pour commencer
qu'on commence vraiment doucement par
contre on va terminer pour cette vidéo
sur à parler des attributs de classe
c'est très simple aussi euh alors je
vais reprendre cet exemple là donc
j'enlève tout hein tout le texte que
j'ai non je vais garder le texte que
j'ai mis là
ici et euh comment vous direà ceci et
l'attribut de classe c'est tout
simplement un attribut qui n'appartient
pas à un objet en particulier mais qui
appartient il est le même en fait pour
tous les objets de la classe que vous
allez créer et comment on le différencie
bah au lieu de le créer par exemple dans
le constructeur ou dans une méthode
qu'on aurait on le crée dans la
définition de la classe elle-même
rappelez-vous un attribut c'est une
variable donc je peux tout simplement la
mettre ici par exemple alors le fameux
le genre de chose qui peut être utile
qu'on fait qu'on fait souvent c'est ça
beaucoup le font c'est par exemple une
variable qui dirait le nombre d'objets
que l'on a créé pour un logiciel ça peut
être le nombre de licences que qui ont
été activé ce genre de choses d'accord
ça peut être pas mal de pas mal d'idée
euh que- çapp al là quand on parle
d'humain on parle d'unité hein on peut
imaginer par exemple faire une armée B
on peut très bien avoir une fameuse euh
tout simplement on mettre
humain d'accord humain créé comme ceci
donc c'est un voyez qu'il est en dehors
hein de du constructeur on fait humain
cré ég Z0 et après du coup une fois que
là on a fait l'humain on peut dire du
coup que humain créer d'accord à
augmenté de 1 ok euh plus exactement
pardon comme ceci alors pourquoi je fais
ça parce que c'est un euh c'est pas en
fait lié à quelque chose c'est si je
fais self je vais créer un attribut de
classe humain créé qui ne serait pas le
même là je lui dis en fait que dans la
classe humain il y a un attribut de
classe pas un attribut tout court un
attribut de classe qui s'appelle comme
ceci je fais une modification dessus
donc vous c'est bien voyez la différence
quand ça appartient à l'objet en
lui-même c'est self c'est lui-même quand
c'est un attribut de classe on met le
nom de la classe Point la variable donc
c'est quelque chose qui va être en
dehors donc ici et là chaque fois que je
vais créer en fait un personnage donc je
peux l'afficher hein je peux faire voilà
humain existant par exemple donc je vais
mettre
ça point format là je vais mettre voyez
humain en fait parce que c'est pas lié à
un objet rappelez-vous c'est lié à la
classe donc je mets humain point humain
créer d'accord comme pour ici en fait
comme ce que j'ai fait là donc je vais
afficher ça et puis là je vais en créer
un deuxième je vais créer H2 comme
j'avais dit euh au début humain on va
reprendre Albert ou là
hop et on va afficher cette nouvelle
ligne et là on va voir un peu la
différence voilà création d'un humain
d'accord il vous met qu' humain existant
il y en a 1 et là humain existant il y
en a deux vous voyez la variable va être
la même pour tout le monde il va pas
remettre à zéro en fait le compteur
alors si on l'avait créé comme une
variable de bah pour l'objet et ben elle
serait à zéro pour chaque objet du coup
en faisant + 1 bah elle passera à 1 pour
tous les objets et là on aurait un et un
pour chacun puisqu'ils auraient une
variable à eux seul ils auraient chacun
leur propre vari comme un attribut
normal et comme ils ont leur prénom par
exemple leur prénom il ben ils ont
chacun leur prénom chacun leur âge bah
là ils auraient chacun leur humain créé
alors qu'ici en le mettant en dehors on
en a fait un attribut de classe qui
appartient non plus à l'objet mais à la
classe en général et du coup tous les
objets ont accès à cette même variable
c'est un peu une variable globale en
fait pour tous les objets vous créez
toutes les instances que vous créez pour
cette classe tout simplement si je peux
le résumer en tout cas c'est comme ça
que je le ferai voilà écoutez ben je
pense qu'on a fait un peu le tour pour
cette vidéo là je voulais rester sur
tout ce qui est classe attribut je
voulais pas trop compliquer pas trop en
dire parce que he il y a beaucoup
beaucoup de choses en objet donc on va y
aller tranquillement pour que ce soit
pas trop on va dire pas trop long et pas
trop pas trop éprouvant pour vous hein
si vous si vous démarrez surtout que la
formation Python est l'une des plus
accessibles quand vous êtes débutant
d'informatique donc j'essaie de faire
quelque chose le plus simple possible en
tout cas pour que ça vous encourage par
la suite à apprendre d'autres langages
plus compliqués ou d'autres technologies
tout simplement voilà donc on va en
rester là pour cette petite séance
numéro 11 dans la prochaine B on parlera
des propriétés un petit peu on va voir
les méthodes hein parce que là c'est
bien on a créé des objets on a créé des
humains mais on aimerait leur faire
faire des choses les faire parler euh
pourquoi pas leur faire faire voilà des
actions tout simplement donc ce sont no
sont nos méthodes rappelez-vous les
méthodes sont tout simplement des
fonctions qui appartiennent à une classe
d'accord c'est rien rien de plus rien de
moins c'est simplement une fonction mais
propre à un objet quand on parle d'objet
on dit des méthodes quand on parle de
procédural par exemple on parle de de
fonction et sur des anciens langages on
parlait carrément de procédure voilà les
noms ont changé mais en fait c'est un
petit peu la même chose voilà et puis on
verra donc dans cette dans cette 12e
séance on regardardera un petit peu tout
ça on parlera des des méthodes on
parlera des propriétés et de pas mal
d'autres petites choses liées justement
avec ce qu'on peut faire avec nos
différents objets que nous avons créés à
très
[Musique]
bientôt
5.0 / 5 (0 votes)