Python #12 - méthodes

FormationVidéo
30 May 201719:05

Summary

TLDRDans cette séance 12 de la formation sur le langage Python, l'enseignant aborde le concept de méthodes en programmation orientée objet. Il explique que les méthodes sont des fonctions liées à une instance de classe, ou un objet, et présente également les méthodes de classe et les méthodes statiques. Le script illustre la création de méthodes avec des exemples simples, comme la définition d'une méthode 'parler' pour un objet 'Humain'. L'enseignant insiste sur la différence entre ces types de méthodes et leur utilité respective, encourageant les apprenants à pratiquer et à poser des questions pour approfondir leur compréhension.

Takeaways

  • 😀 La vidéo traite de la programmation orientée objet en Python, en se concentrant sur les méthodes.
  • 🏫 Elle est la suite de la session 11, où les classes et les instances ont été introduites.
  • 📚 Les méthodes sont des fonctions liées à une instance de classe, appelées aussi objets.
  • 🔑 Les méthodes de classe sont des fonctions qui agissent sur la classe elle-même, indépendamment des instances.
  • 🔒 Les méthodes statiques sont des fonctions définies dans une classe mais qui peuvent être appelées sans dépendre de l'instance ni de la classe.
  • 👤 L'exemple donné est la classe 'Humain', avec des attributs tels que le nom et l'âge, et des méthodes pour interagir avec ces attributs.
  • 📝 La différence entre les méthodes d'instance (standard), de classe et statiques est expliquée en détail.
  • 📚 Les méthodes d'instance utilisent 'self' pour se référer à l'instance, tandis que les méthodes de classe utilisent 'cls'.
  • 🛠️ Les méthodes de classe sont déclarées avec '@classmethod' et modifient généralement des attributs de classe.
  • 🔄 Les méthodes statiques sont déclarées avec '@staticmethod' et sont appelées de manière indépendante de la classe ou des instances.
  • 📈 L'importance de comprendre ces trois types de méthodes est soulignée, bien que leur utilité ne soit pas immédiatement évidente pour les débutants.

Q & A

  • Quelle est la différence entre une méthode d'instance et une méthode de classe en Python?

    -Une méthode d'instance, aussi appelée méthode d'objet, est liée à une instance de classe et agit sur les attributs de cette instance. Une méthode de classe, quant à elle, fonctionne sur la classe elle-même et peut être appelée sans instancier d'objet, elle modifie généralement des attributs de classe.

  • Comment créer une méthode d'instance dans une classe Python?

    -Pour créer une méthode d'instance, on utilise le mot-clé 'def' suivi du nom de la méthode et du paramètre 'self', qui fait référence à l'instance de la classe. Par exemple, 'def parler(self, message):'.

  • Quel est le rôle du paramètre 'self' dans les méthodes d'instance?

    -Le paramètre 'self' est utilisé pour faire référence à l'instance de la classe courante, permettant ainsi à la méthode d'accéder et de modifier les attributs de cette instance.

  • Comment appeller une méthode d'instance dans une instance de classe?

    -Pour appeler une méthode d'instance, on utilise le point ('.') suivi du nom de l'instance, du nom de la méthode et des paramètres nécessaires. Par exemple, 'H1.parler("Bonjour")'.

  • Quels sont les types de méthodes que l'on peut définir dans une classe Python?

    -On peut définir trois types de méthodes dans une classe Python : les méthodes d'instance, les méthodes de classe et les méthodes statiques.

  • Quelle est la différence entre une méthode de classe et une méthode statique?

    -Une méthode de classe modifie ou accède à des attributs de classe et est appelée avec la classe comme premier argument (clé mot 'cls'). Une méthode statique, quant à elle, est indépendante de l'instance et de la classe et ne prend pas de paramètres spécifiques à la classe ou à l'instance.

  • Comment marquer une méthode en tant que méthode de classe dans Python?

    -Pour marquer une méthode en tant que méthode de classe, on utilise le décorateur '@classmethod' et on passe le nom de la classe en premier paramètre de la méthode, généralement 'cls'.

  • Quel est le but des méthodes statiques dans une classe Python?

    -Les méthodes statiques sont utilisées pour des fonctions utilitaires qui sont liées à la classe mais qui ne nécessitent pas d'instance ni d'accès aux attributs de la classe. Elles peuvent être appelées directement via la classe sans instanciation.

  • Comment appeller une méthode de classe ou une méthode statique dans Python?

    -Les méthodes de classe et les méthodes statiques sont appelées via la classe elle-même, en utilisant le nom de la classe suivi du point et du nom de la méthode. Par exemple, 'Humain.changer_planete(Mars)' pour une méthode de classe.

  • Pourquoi utiliser des méthodes dans les classes et non des fonctions séparées?

    -Les méthodes sont utilisées pour regrouper des fonctions qui opèrent sur les données d'une instance ou de la classe, créant ainsi une structure plus organisée et une meilleure encapsulation des données et des fonctionnalités associées.

  • Quel est l'intérêt de la notion de classe et d'objet en programmation orientée objet?

    -L'intérêt de la notion de classe et d'objet en programmation orientée objet est de permettre une meilleure organisation du code, en regroupant les données (attributs) et les fonctions qui les manipulent (méthodes), et en facilitant ainsi la réutilisation et la maintenance du code.

Outlines

00:00

📘 Introduction aux méthodes en Python

Ce paragraphe introduit le sujet des méthodes dans le contexte de la programmation orientée objet en Python. Il rappelle les notions de classes et d'instances vues précédemment et annonce l'approfondissement sur les méthodes, qui sont des fonctions liées à une instance de classe. L'objectif est de clarifier les concepts de méthodes d'instance, de méthodes de classe et de méthodes statiques à travers des exemples concrets, comme la création d'une classe 'Humain' avec des attributs de nom et d'âge.

05:02

📗 Création de méthodes d'instance

Dans ce paragraphe, l'auteur se concentre sur la création de méthodes d'instance, qui sont des fonctions associées à une instance spécifique d'une classe. Il illustre cela avec l'ajout d'une méthode 'parler' à la classe 'Humain', qui permet à une instance de cette classe d'afficher un message. L'exercice montre comment définir une méthode en utilisant le mot-clé 'def', comment l'appeler sur une instance et comment passer des paramètres à cette méthode.

10:03

📙 Méthodes de classe et attributs de classe

Le paragraphe explique les méthodes de classe et les différences avec les méthodes d'instance. Les méthodes de classe opèrent sur la classe elle-même plutôt que sur une instance spécifique. L'exemple donné est la modification de l'attribut de classe 'lieu_habitation' pour toutes les instances de la classe 'Humain'. Il est également question de la syntaxe pour définir une méthode de classe en utilisant le mot-clé '@classmethod' et le paramètre 'cls' pour référencer la classe.

15:04

📕 Méthodes statiques et leur indépendance

Ce paragraphe aborde les méthodes statiques, qui sont indépendantes de la classe et de ses instances. Elles ne nécessitent pas de référence à une instance ou à la classe elle-même pour être appelées. Un exemple de méthode statique 'definition' est créé dans la classe 'Humain', montrant comment elle peut être utilisée sans créer d'objet. L'auteur souligne que ces méthodes sont utiles pour des fonctionnalités qui ne sont pas directement liées à la logique métier de la classe.

📔 Récapitulation et anticipation de la suite

En conclusion, le paragraphe résume les trois types de méthodes vus tout au long de la vidéo : les méthodes d'instance, les méthodes de classe et les méthodes statiques. Il encourage les téléspectateurs à les retenir et à comprendre leur utilité dans différents contextes de programmation. L'auteur annonce également le prochain sujet de la formation, qui sera les propriétés en programmation orientée objet, et invite les téléspectateurs à s'entraîner et à poser des questions.

Mindmap

Keywords

💡Langage Python

Le langage Python est un langage de programmation interprété et à haute niveau, largement utilisé pour la science des données, l'apprentissage automatique, le développement web et bien plus encore. Dans le script, il est le contexte dans lequel la formation se déroule, enseignant comment créer et gérer des classes et des objets.

💡Classes

Une classe en Python est un blueprint pour créer des objets (instances). C'est un moyen de structurer le code en regroupant des attributs et des méthodes. Le script aborder la création de classes comme 'Humain' et comment les définir avec des attributs et des constructeurs.

💡Attributs

Les attributs représentent les caractéristiques ou les propriétés d'une classe ou d'une instance. Dans le script, 'nom' et 'âge' sont des attributs de la classe 'Humain', définis pour chaque instance de cette classe.

💡Instance de classe

Une instance de classe est un objet créé à partir d'une classe. Le script explique comment créer une instance de la classe 'Humain' et comment utiliser cette instance pour accéder à ses attributs et méthodes.

💡Méthodes

Les méthodes sont des fonctions associées à une classe et ses instances. Elles définissent les actions ou les comportements d'un objet. Le script décrit comment créer des méthodes pour la classe 'Humain', comme 'parler', qui est appelée sur une instance.

💡Méthodes de classe

Les méthodes de classe sont liées à la classe elle-même plutôt qu'à une instance spécifique. Elles utilisent le premier paramètre 'cls' et modifient généralement des attributs de classe. L'exemple donné dans le script est la méthode 'changer_planète' qui modifie l'attribut de classe 'lieu_habitation'.

💡Méthodes statiques

Les méthodes statiques sont indépendantes de l'état de l'objet et de la classe. Elles ne nécessitent pas d'instance ou de classe pour être appelées et sont souvent utilisées pour des fonctions utilitaires. Dans le script, 'définition' est un exemple de méthode statique qui pourrait être utilisée pour fournir une définition des humains.

💡Programmation orientée objet

La programmation orientée objet (POO) est un paradigme de programmation basé sur la notion de 'objets'. Cette approche utilise des classes et des objets pour modéliser le monde réel et fournir une structure modulaire et réutilisable pour le code. Le script est centré sur la POO en expliquant les concepts de classes, d'instances et de méthodes.

💡Constructeur

Le constructeur est une méthode spéciale d'une classe appelée automatiquement lors de la création d'une instance. Il permet d'initialiser les attributs de l'objet. Dans le script, le constructeur est mentionné comme une partie importante de la définition de la classe 'Humain'.

💡Paramètres

Les paramètres sont des variables utilisées pour passer des informations à une fonction ou une méthode. Dans le script, les paramètres sont utilisés pour donner des valeurs aux attributs de la classe 'Humain' lors de l'instanciation, comme le prénom et l'âge.

Highlights

Introduction à la programmation orientée objet avec Python : Explication des classes, attributs et instances.

Création de la première classe et instanciation pour créer des objets.

Les méthodes en Python : fonctions liées à une instance de classe.

Différence entre les méthodes d'instance, de classe et statiques.

Utilisation de 'self' pour les attributs et méthodes d'instance.

Création d'une méthode 'parler' pour l'instance d'un objet humain.

Appel de la méthode 'parler' sur une instance d'objet humain.

Explication de la syntaxe et utilisation des méthodes de classe avec 'cls'.

Modification de l'attribut de classe 'lieu_habitation' à travers une méthode de classe.

Utilisation de la décoration @classmethod pour définir une méthode de classe.

Méthodes statiques : fonctions indépendantes de l'instance et de la classe.

Définition d'une méthode statique 'definition' dans la classe humain.

Appel direct d'une méthode statique sans instance ni classe.

Importance de comprendre les utilisations des trois types de méthodes.

Pratique recommandée : Manipuler et créer des programmes pour bien comprendre les méthodes.

Préparation à la prochaine vidéo sur les propriétés en programmation orientée objet.

Encouragement à poser des questions et à interagir pour une meilleure compréhension.

Transcripts

play00:00

[Musique]

play00:10

bonjour à tous bienvenue pour votre

play00:11

séance numéro 12 vous êtes sur la

play00:13

formation langage Python la dernière

play00:15

fois nous avions vu les classes

play00:17

attributs vous avez appris à créer votre

play00:18

première classe à la définir et ensuite

play00:21

l'instancier ce qu'on appelle tout

play00:22

simplement une instance de classe

play00:23

c'est-à-dire un objet donc ce sont les

play00:24

choses que nous avions vu précédemment

play00:26

on sétait arrêté là je vous avais dit

play00:28

que nous poursuivions nous allons nous

play00:29

allons poursuivre pardon pour la suite

play00:31

des vidéos aujourd'hui nous allons

play00:32

parler de méthode donc cette vidéo sera

play00:34

quand même assez courte puisque je

play00:36

préfère comme ça parler de plusieurs

play00:38

catégories différentes par vidéo plutôt

play00:40

que d'en faire trop dans une seule

play00:41

histoire que ce soit bien clair pour

play00:42

vous vous puissiez avancer correctement

play00:44

alors là on va revenir sur des petites

play00:46

choses qu'on avait expliqué en

play00:47

introduction vous vous souvenez dans la

play00:48

vidéo d'introduction la séance 10 je

play00:50

m'éis amusé en fait à vous donner

play00:51

plusieurs termes et à vous donner une

play00:53

petite définition très brève encore une

play00:55

fois où ça vous permettait comme ça de

play00:57

voir un peu ce qui allait vous attendre

play00:59

dans pour la suite en tout cas de la

play01:00

formation sur tout ce qui est

play01:01

programmation orienté objet aujourd'hui

play01:04

nous parlons que des méthodes si vous

play01:05

vous souvenez un petit peu dans les

play01:06

notes un petit peu précédentes j'avais

play01:08

grosso modo repris ces trois termesl pas

play01:10

forcément avec les mêmes définitions

play01:11

j'ai pas fait du copier-collé je vous ai

play01:12

repris un petit peu les choses vous avez

play01:14

parlé de méthode donc c'est ce que nous

play01:16

allons parler c'est tout simplement une

play01:17

fonction qui va être liée à une instance

play01:19

de classe donc un objet vous verrez

play01:21

comment on va apprendre à en créer à les

play01:22

utiliser on parlera ensuite de méthodes

play01:24

de classe qui elles sont vraiment des

play01:25

fonctions qui vont agir sur la classe

play01:27

elle-même pas forcément une instance

play01:28

d'un objet en particulier et on aura les

play01:30

méthodes statiques donc une méthode

play01:31

statique elle va être écrite dans une

play01:33

classe en particulier mais elle en sera

play01:34

indépendante c'est vous pourrez

play01:35

l'utiliser en fait n'importe quand par

play01:37

contre il faudra bien évidemment

play01:38

renseigner la classe dans laquelle vous

play01:39

l'avez écrite donc c'est pour ça que

play01:40

j'ai mis que c'est lié entre entre

play01:42

guillemets à une classe puisquelle doit

play01:43

évidemment être définie dans une classe

play01:45

sinon bah vous pouvez pas l'utiliser

play01:46

tout simplement on va du coup

play01:48

directement créer une petite classe pour

play01:50

l'exemple et on va montrer comment on

play01:52

peut justement définir des méthodes

play01:54

alors on va faire simplement euh classe

play01:57

par

play01:58

exemple est-ce qu'on peut prendre comme

play02:00

classe est-ce qu'on peut changer

play02:02

d'exemple je cherche un petit exemple

play02:04

fait qui pourrait être un peu différent

play02:05

de ce qu'on a l'habitude de voir en

play02:06

général je prends l'exemple des jeux

play02:07

vidéo après je prendsemple des animaux

play02:09

tout ça on vaendre l'exemple des humains

play02:12

cétait bien clair l'autre fois on va

play02:13

reprendre celuilà donc on va définir une

play02:16

classe humain d'accord ça on avit parlé

play02:18

l'autre fois et on avait fait ensuite un

play02:20

petit alors on a mis bon voilà classe

play02:23

pour les humains vous vous souvenez

play02:30

donc ça c'est u pour quand on fait on

play02:32

appelleu la fonction et ensuite on fait

play02:36

notre

play02:37

constructeur

play02:42

aveobjet

play02:46

lumecfir des paramètr pas mal DEES

play02:48

choses par exemple

play02:52

[Musique]

play02:55

et rester sur ças simpement on lu

play03:00

définir des attributs de classe enfin

play03:02

des attributs même tout courts internes

play03:03

en fait pour l'objet donc des attributs

play03:06

d'instance plutôt donc self point nom

play03:09

égal nom et self point H é= h voilà ça

play03:13

c'est ce tout ce que nous avions vu

play03:15

avant je vous rappelle qu'ici on est

play03:17

dans le programme principal d'accord on

play03:20

a quitté en fait la définition de la

play03:21

classe et il suffisait par exemple de

play03:23

faire euh H1 = humain d'accord et là bon

play03:27

comme les deux paramètres sont

play03:29

obligatoires on pouvait lui renseigner

play03:30

un prénom et on pouvit lui renseigner un

play03:32

âge par exemple d'accord ce genre de

play03:33

chose voilà et à partir de là on pouvait

play03:36

éventuellement afficher ses attributs en

play03:37

affichant self.n self.age BF je vous

play03:40

avais parlé un petit peu de tout ça

play03:41

c'est des choses qu'on avait vu on s'est

play03:42

arrêté là et le but c'est maintenant de

play03:44

voir qu'est-ce qu'on peut ajouter à ça

play03:45

parce que là notre humain il peut pas il

play03:47

peut rien faire en fait tout simplement

play03:48

il a quelques attributs donc ici un nom

play03:50

et un âge mais il peut pas faire

play03:51

grand-chose il a pas vraiment de la

play03:53

particularité en tout cas de euh de

play03:55

choses qu'il peut faire et pour cela on

play03:57

va créer des méthodes une méthode comme

play03:58

j'ai expliqué c'est une fonction propre

play04:01

à une instance d'accord et comment ça se

play04:02

crée bah ça se crée comme une fonction

play04:04

c'està tout ce que vous avez vu encore

play04:05

une fois sur la vidéo sur les fonctions

play04:07

va vous va vous servir ici il suffit

play04:10

simplement d'utiliser le mot-cé DEF

play04:11

comme vous avez appris et de choisir un

play04:13

nom donc à selon les mêmes règles de

play04:15

nommage que pour les fonctions vous

play04:16

choisissez un nom de méthode alors

play04:18

n'utilisez pas évidemment les

play04:19

doubles_erscore comme ça c'est réservé

play04:21

notamment pour les méthodes spéciales du

play04:22

langage Python dont on aura l'occasion

play04:24

de parler dans des vidéos plus tard et

play04:26

là vous choisissez un N tout bête al ça

play04:27

peut être je sais pas moi n'importe quoi

play04:29

euh ça peut être parler hein on peut on

play04:31

peut mettre ce gen de chose donc on

play04:34

remet le mot clé self bien sûr on met

play04:36

message et puis on pourrait faire ça

play04:38

alors complètement inutile comme typ

play04:39

d'utilisation bien sûr mais c'est

play04:41

histoire de vous montrer un petit peu et

play04:43

là on peut dire par exemple euh je sais

play04:45

pas

play04:46

moi on va prendre la méthode format

play04:49

parce que maintenant vous savez comment

play04:50

he que on l'a montré dans la vidéo

play04:52

précédent maintenant que vous connaissez

play04:53

l'objet vous savez comment ça fonctionne

play04:55

euh on va mettre ceci donc adit par

play04:58

exemple hop ce genre de

play05:01

chose et puis là donc au début je veux

play05:04

que ça m'affiche le nom d'accord donc

play05:07

vous voyez on peut faire directement un

play05:08

accès au nom à l'attribut et ensuite

play05:10

c'est le message voilà ce genre de chose

play05:13

et du coup notre petit humain on va

play05:15

pouvoir le faire parler donc on va lui

play05:16

faire tout simplement comme c'est une

play05:18

fonction propre à une instance d'accord

play05:20

rappelez-vous est sur l'instance donc il

play05:22

va falloir le faire sur l'instance donc

play05:23

l'instance ici moi c'est quoi l'objet

play05:25

c'est H1 donc je vais faire H1 et vous

play05:27

mettez un point c'estàd que H1 il va

play05:30

utiliser donc le point c'est pour pour

play05:31

dire entre guillemets bah utilise voilà

play05:33

l'objet H1 fait appel à la méthode

play05:36

parler comme ceci et comme pour une

play05:38

fonction vous rentrez les paramètres

play05:40

qu'il faut donc moi il y en a qu'un seul

play05:41

c'est le

play05:42

message d'accord on pe mettre ce genre

play05:45

de chose et on y va on va directement

play05:47

tester donc là je fais python

play05:51

voilà alors invalide syntaxe oui j'ai

play05:54

oublié les deux points hop c'était juste

play05:57

ça on recommence voilà d'accord donc il

play06:00

prend bien le nom et il affiche le texte

play06:02

que j'ai mis là et il affiche le petit

play06:04

message donc du coup très pratique

play06:06

puisque comme pour les fonctions comme

play06:07

on avait vu précédemment on peut faire

play06:09

parler du coup le personnage très

play06:11

facilement comme ceci mais là bon rien

play06:13

de nouveau hein c'est vraiment la même

play06:14

chose que ce que vous avez vu avec les

play06:15

fonctions je vous apprends rien du tout

play06:18

du coup très pratique très simple à

play06:20

faire d'accord des méthodes je vais pas

play06:22

vous en dire plus que toute façon les

play06:23

règles savez au niveau des paramètres

play06:25

oblig obligatoires facultatifs qu'on

play06:27

peut mettre dans lorsqu'on veut c'est

play06:28

comme pour les fonctions donc si a un

play06:29

truc qui est pas encore clair vous

play06:31

revyez la vidéo sur les fonctions et

play06:32

vous saurez utiliser tout ce que vous

play06:34

avez appris pour les fonctions pour les

play06:35

méthodes les méthodes c'est vraiment un

play06:37

nom différent c'est pour bien savoir

play06:38

qu'on parle de fonction propres euh ici

play06:41

de fonction par rapport à de l'objet

play06:42

alors que quand on parle juste de

play06:43

fonction toute simple bon c'est une

play06:45

fonction type procédural voilà c'est

play06:47

pour ça qu'on distingue les mots

play06:48

méthodes procédurees fonction ce sont

play06:50

trois mots différents en fait qui

play06:51

veulent dire la même chose c'est quelqu

play06:53

c'est tout simplement un groupe de

play06:54

d'instructions qu'on va rassembler

play06:56

ensemble tout simplement voilà pour la

play06:58

la création d'une méthode simple alors

play06:59

je vous dis je vais pas je vais pas euh

play07:01

venir je vais pas donner plus de détails

play07:03

on peut faire bien évidemment un return

play07:04

he on peut retourner quelque chose à une

play07:06

méthode il y a pas de souci bref on

play07:07

pourrait très bien par exemple mettre

play07:08

une autre variable he je sais pas moi

play07:10

une variable résultat qui récupérerait

play07:13

par exemple le retour d'une méthode et

play07:14

puis là par exemple on ferai je sais pas

play07:16

moi euh on ferait un return de message

play07:18

ce qui servira à rien mais c'est bien

play07:19

évidment tout à fait possible d'accord

play07:20

une méthode pour retourner quelque chose

play07:22

elle est absolument comme une fonction

play07:24

c'est vraiment la même chose c'est juste

play07:26

qu'elle est propre ici à donc à une

play07:28

classe puisquon l' créé dans une classe

play07:29

classe et c'est une instance donc un

play07:30

objet qui peut l'utiliser qui peut s'en

play07:32

servir maintenant on peut avoir une

play07:34

petite distinction parce que

play07:35

rappelez-vous il y avait deux autres

play07:36

méthodes il y a méthode de classe

play07:37

qu'est-ce qu'une méthode de classe que

play07:38

ça on pourrait dire c'est déjà une

play07:40

méthode de classe puisqueelle est propre

play07:41

à l'humain mais pas tout à fait alors

play07:43

les termes sont un peu compliqués c'est

play07:44

vrai que on va dire que ceux qui ont qui

play07:46

ont inventé les langages qui ont inventé

play07:47

un petit peu le vocabulaire comme ça

play07:49

informatique sont pas ont pas toujours

play07:50

été très clair là-dessus que c'est vrai

play07:52

qu'une méthode par exemple ici parler

play07:53

pour moi ça pourrait très bien appeler

play07:55

ça une méthode de classe puisqueelle

play07:56

appartient à humain mais pas tout à fait

play07:58

pour ce n'est pas ça puisque ça agit sur

play08:01

se c'estàdire une instance c'estàdire

play08:03

l'objet H1 s'il n'y a pas d'objet créé

play08:06

vous ne pouvez pas utiliser la méthode

play08:07

parler c'est ça qu'il faut comprendre en

play08:09

fait c'est qu'une méthode standard pouz

play08:11

appeler ça appeler ça instance si vous

play08:13

voulez si vous voulez leord donner TER

play08:15

on peut l'appeler méthode d'instance à

play08:16

la rigueur voilà une méthode d'instant

play08:18

elle fonctionne que sur un objet ou

play08:19

méthode d'objet on peut s'amuser à

play08:20

appeler ça comme on veut au final donc

play08:22

il faut créer un objet avant je pourrais

play08:23

pas par exemple directement faire ceci

play08:25

ça marcherait pas parce que H1 n'existe

play08:27

pas et si on fait ça en mettant pardant

play08:30

nom de la classe vous verrez que c'est

play08:31

autre chose donc pas possible on est

play08:32

vraiment obligé dans tous les cas de

play08:34

créer une instance avant tout donc ça

play08:35

c'est les méthodes standard je vais

play08:37

regarder quand même le nom comme ça

play08:38

qu'en général on l'appelle juste méthode

play08:39

tout tout bêtement pour faire cette

play08:42

cette méthode là on va parler maintenant

play08:44

des méthodes de classe la méthode de

play08:46

classe à la différence de la méthode ici

play08:48

standard c'est qu'elle va fonctionner

play08:50

sur la classe en elle-même c'estàd

play08:51

qu'elle va pas fonctionner forcément ici

play08:53

sur H1 qui F qui marcherait pas si par

play08:55

exemple je faisais un objet H2 mais sur

play08:57

la classe humain direct en fait ça va

play09:00

vraiment directement à l'impact dessus

play09:02

donc qu'est-ce qui va changer et bien

play09:03

c'est ce qu'on va passer en paramètrre

play09:05

alors qu'est-ce que je peux mettre

play09:07

dessus j'en sais rien moi bah admettons

play09:10

je sais pas je sais que c'est

play09:11

complètement débile on a qu'à dire par

play09:12

exemple qu'on veut que tous les humains

play09:14

dès le départ ont on puisse à un moment

play09:17

tous leur donner l'âge de allez l'âge de

play09:20

50 ans pour je sais quelle raison c'est

play09:22

parce que je veux il faut bien que je

play09:23

vous donne un exemple et surtout un

play09:25

exemple simple pour que ce soit

play09:26

compréhensible donc on a qu'à faire par

play09:28

exemple je sais pas moi initial

play09:31

l'âge en partant principe que nous on

play09:32

pourrait initialiser l'âge à 50 ans

play09:34

d'accord on va donc agir sur la classe

play09:36

c'està-dire cl d'ailleurs non je peux

play09:38

pas faire ça parce que là dis n'importe

play09:39

quoi en plus parce que là je vais

play09:41

travailler sur une instance donc

play09:42

excusez-moi c'est pas un bon exemple du

play09:43

tout que je vous donne parce que c'est

play09:45

pas sur une instance donc pour la pour

play09:46

une méthode de classe on va directement

play09:48

travailler sur la classe alors si

play09:50

j'avais un attribut de classe

play09:51

rappelez-vous ce qu'on avait vu

play09:52

précédemment quand on met un attribut

play09:53

ici on pourrait servir de méthode de

play09:55

classe pour le modifier d'accord par

play09:57

exemple ça peut être je sais pas moi

play10:00

tiens je sais on peut

play10:03

faire lieu habitation

play10:06

d'accord par exemple OK et la terre par

play10:11

défaut voilà et on pourrait dire par

play10:16

exemple changer planète alors c'est

play10:20

vraiment un exemple bizarre d'accord que

play10:21

je vous donne mais c'est pas grave donc

play10:22

ça rappelez-vous pareil c'est dans la

play10:24

vidéo précédente qu'on l'a vu c'était un

play10:25

attribut de classe c'estd qu'il est pas

play10:26

lié à une instance il y a pas de self

play10:28

c'est euh pour chaque objet et on y

play10:31

accéderit souvenez-vous en faisant ceci

play10:33

le nom de la classe Point le nom de

play10:35

l'attribut d'accord céit la différence

play10:37

alors que là pour accéder à un attribut

play10:39

d'objet il suffit de mettre H1 point par

play10:41

exemple nom ou h1.h comme on a fait en

play10:43

fait un petit peu ici sauf que là on a

play10:45

mis self donc c'était la différence et

play10:48

bien c'est un peu pareil c'estàdire que

play10:49

ça comme c'est lié non pas à une

play10:51

instance mais à toute la classe c'estd

play10:52

que c'est pour n'importe quel humain on

play10:54

aura lieu d'habitation qui est la terre

play10:55

je peux très bien faire une méthode qui

play10:57

va travailler sur des choses qui sont

play10:58

lié à une classe donc on va lui passer

play11:00

le mot clé CLS pour classe tout

play11:02

simplement donc voyez c'est pas self on

play11:04

met CLS c'est là toute la différence

play11:06

quand vous voyez le mot self c'est une

play11:09

méthode je mettre ici par exemple self

play11:12

méthode standard d'accord quand vous

play11:14

voyez CLS c'est une méthode de classe

play11:18

voilà ça vous pouzidentifier facilement

play11:20

je mettre les deux points et on verra

play11:22

après pour les méthodes statique justuse

play11:23

à la fin ici et là du coup on peut

play11:26

modifier quelque chose par exemple moi

play11:27

changer planète je fais ça puis je vais

play11:29

mettre

play11:30

nouvelle planète pourquoi

play11:33

pas et là je vais tout simplement dire

play11:36

que le lieu d'habitation alors même

play11:40

humain point lieu d'habitation il est

play11:44

égal à la nouvelle planète donc on va

play11:47

arrêter de faire parler le bonhomme on

play11:48

va tester de base regardez ce qu'on va

play11:50

faire on va faire un print on va lui

play11:54

dire planète actuelle hop et on va

play11:58

mettre avec format

play12:02

donc c'est

play12:04

humain.lieuabitation d'accord ça c'est

play12:06

une syntaxe vous normalement vous

play12:07

comprenez tout ça on l'a vu précédemment

play12:09

formate l'attribut un attribut de classe

play12:11

tout ça c'est vu précédemment donc on va

play12:14

faire ça on va le faire une deuxième

play12:16

fois ensuite après résultat et entre

play12:17

deux on va utiliser ça d'accord donc

play12:20

benah écoutez je vais la méthode de

play12:22

classe on va directement l'appeler par

play12:24

rapport à ça je vais faire tout

play12:27

simplement un changement au niveau de

play12:29

cette fonction par contre c'est pas

play12:31

suffisant là si je mets que ceci ça ne

play12:34

marchera pas parce que en fait pour

play12:35

Python pour lui là c'est pas une méthode

play12:37

de classe d'accord c'est pas suffisant

play12:38

pour lui ça va être une méthode standard

play12:40

ici parce que je n'ai rien qui a permis

play12:42

de dire tiens considère ça comme une

play12:43

méthode de classe on va pour cela

play12:45

utiliser un terme différent alors ça se

play12:47

met ici d'accord dans la classe he ça se

play12:48

met pas au niveau de la la fonction vous

play12:50

voyez je me mets au même niveau que les

play12:51

def partout là puis que la l'attribut de

play12:54

classe donc ici et je vais tout

play12:56

simplement créer une sorte de variable

play12:57

d'accord et je vais dire par exemple bon

play12:59

je vais lui mettre le même nom he je

play13:00

peux mettre par exemple changer planète

play13:01

en général on fait ça on s'embête pas et

play13:03

je lui dis que changer planète d'accord

play13:05

ça va être en fait une méthode de classe

play13:08

donc je vais utiliser le terme class

play13:09

methode d'accord donc en anglais et

play13:12

entre parenthèses quelle méthode va

play13:15

devenir une méthode de classe donc

play13:16

celle-là ou je m'embête pas je mets le

play13:18

même nom ok comme ça je je m'embête pas

play13:20

et là du coup à partir d'ici vous voyez

play13:22

comme pour l'attribut de classe on a

play13:23

défini une méthode de classe et donc en

play13:26

faisant humain point Chang planète donc

play13:30

je rappelle que changer planèt que je

play13:31

mets ici c'est ça en fait ok donc là

play13:34

c'est par exemple je l'appelis ch il

play13:36

faudrait mettre ch pourtant la méthode

play13:39

voyez que c'est changé planète ok

play13:40

histoire de pas vous tromper donc je

play13:43

mettre comme céta voilà changer planète

play13:45

et bien sûr je mettre le paramètre qu'

play13:49

attend la mars OK et là si je n'ai pas

play13:52

fait de bêtis vous voyez que ça

play13:54

fonctionne j'ai changé la planète des

play13:55

êtres humains donc tous les tous les

play13:57

objets qu'on va créer humains il sont

play13:59

tous sur la planète Mars à partir du

play14:01

moment où je vais changer donc ici

play14:02

puisque j'ai modifié un attribut de

play14:04

classe d'accord donc c'était pas lié à

play14:06

l'oget H1 vous voyez là on a jamais une

play14:08

seule fois parlé de cet humain là on a

play14:09

fait carrément un changement sur la

play14:10

classe en elle-même on a jamais une

play14:12

seule fois fait intervenir le l'objet

play14:14

que j'avais créé donc c'est ça la

play14:15

différence avec un une méthode de classe

play14:17

le mot- clé CLS en premier paramètre de

play14:20

la méthode et ensuite vous mettez cette

play14:22

petite ligne très importante donc vous

play14:24

la mettez après par exemple la

play14:25

définition la méthode comme ça voilà

play14:27

vous êtes sûr que c'est c'est ensemble

play14:28

vous pouz mettre comme ça si vous voulez

play14:29

mais attention pas dans la méthode c'est

play14:31

vraiment en dehors puisque c'est une

play14:33

méthode de classe donc c'est défini dans

play14:35

la classe voilà et on terminera cette

play14:38

vidéo avec une dernière chose les

play14:39

méthodes statiques une méthode statique

play14:42

c'est ça c'est lié comme je ai dit à une

play14:44

classe mais elle est indépendante

play14:45

c'est-à-dire qu'en fait c'est un peu une

play14:46

classe qui peut être utilitaire une

play14:48

classe qui va permettre de faire

play14:49

certaines choses mais qu'on peut appeler

play14:50

un petit peu n'importe comment encore

play14:51

une fois sans avoir d'objet instancier

play14:53

et sans forcément travailler sur la

play14:55

classe elle-même c'est qu'on n'est pas

play14:56

obligé de travailler sur la classe on

play14:58

peut juste par exemple afficher un

play14:59

message ou enfin je je ne sais quoi en

play15:01

fait on peut faire tellement plein de

play15:02

choses après vous enverrez peut-être

play15:04

l'utilité à un certains moment d'autres

play15:05

pas du tout mais je vous montre quand

play15:07

même évidemment que ça existe et comment

play15:08

en faire donc même chose on va faire un

play15:10

def euh qu'est-ce qu'on peut faire je

play15:13

sais pas moi qu'est-ce qu'on peut mettre

play15:16

euh bah tiens par exemple

play15:20

définition d'accord on va mettre ceci je

play15:22

mets rien comme paramètrre OK et bon

play15:25

elle fera quelque chose très simple par

play15:26

exemple je sais pas moi euh

play15:31

cler comme étant le plus ha être

play15:36

vivant je metsite d'cord de la chaîne

play15:43

alimentaire on s'en fiche mais plus

play15:50

ça pas si je fais

play15:53

ça je préfère la rig laisser sur une

play15:56

seule ligne voilà

play15:59

ok donc ça j'ai fait ma petite ma petite

play16:01

méthode en fait définition donc en vrai

play16:03

c'est une méthode donc bon là vous allez

play16:05

dire elle est un peu liée à la classe

play16:06

quelque part parce que je parle des

play16:06

humain mais j'aurais pu parler de la

play16:07

pluie de be temp ça aurait été la même

play16:09

chose elle est définie dans la classe

play16:10

humain effectivement c'est bien là voz

play16:12

dans le corps de la classe humain que je

play16:13

l'ai créé et même chose je vais dire par

play16:15

exemple je sais pas moi j'aurais pu dire

play16:18

kesako parle qu'est-ce qu'un humain ce

play16:19

genre de chose on va mettre pareil

play16:21

définition et non pas la classe méthode

play16:24

comme je l'ai fait ici d'accord mais

play16:26

statique

play16:28

OK

play16:29

on utilise le mot là statique méthode et

play16:31

on dit laquelle est une méthode statique

play16:34

donc définition et voilà et comment je

play16:37

l'utilise bah tout simplement j'ai même

play16:39

pas besoin de faire ça en fait on peut

play16:40

vraiment tout virer pour montrer que ça

play16:41

fonctionne je dis que dans la classe

play16:44

humain j'utilise la méthode statique

play16:47

définition tout simplement et là si je

play16:50

fais mon test voilà on peut utiliser

play16:53

donc directement des méthodes de cette

play16:54

manière donc c'est vraiment indépendant

play16:56

d'accord ça peut être appelé n'importe

play16:57

quand c'est pas li un objet une instance

play16:59

c'est pas forcément on n'est pas obligé

play17:01

de travailler forcément sur une classe

play17:02

voyez qu'on passe pas le mot clé CLS là

play17:04

on est vraiment complètement indépendant

play17:06

par contre comme je parle des humains

play17:07

ben je l'ai mis dans ma classe humaine

play17:08

parce que ça les concerné c'est pour ça

play17:10

que j'ai dit ici que c'était lié quand

play17:11

même à une classe parce que par exemple

play17:13

cette cette méthode là je va pas aller

play17:14

la mettre dans une classe animale ça

play17:16

parle des humains ce serait un peu

play17:17

bizarre donc faut quand même qu'elle

play17:18

soit on va dire catégorisé qu'elle soit

play17:19

rangée quelque part là où il faut par

play17:21

contre elle est vraiment indépendante

play17:23

aussi bien de des instances qu'on peut

play17:24

créer que de la classe et on en

play17:27

terminera avec ça vous avez dit cé une

play17:28

petite vidéo courte histoire de faire

play17:29

une petite pause avant la suite la

play17:31

prochaine devrait pas être trop trop

play17:32

long normalement mais maintenant vous

play17:33

savez comment faire des méthodes donc

play17:35

retenez vraiment ces trois types là la

play17:36

méthode standard ouaeler la méthode

play17:38

d'instant si vous voulez ou d'objet pour

play17:40

un objet vous avez la méthode de classe

play17:42

c'est vraiment un terme très utilisé et

play17:43

la méthode statique c'est trois petites

play17:44

choses à savoir elles ont chacune leur

play17:47

utilité retenez surtout la méthode

play17:49

standard bien évidemment ça vous en

play17:51

aurez des fois usage pas toujours mais

play17:53

ça peut être parfois pas mal utile et

play17:55

méthode statique pareil mais là au stade

play17:57

où vous en êtes de cette formation vous

play17:59

n'en verrez pas l'utilité et c'est

play18:00

parfaitement normal c'est pas que c'est

play18:01

inutile c'est pas que si ne voyez pas à

play18:03

quoi ça sert là tout de suite c'est

play18:05

parfaitement normal quand vous aurez un

play18:06

peu plus d'expérience quand vous aurez

play18:07

vraiment plus manipulé fait des

play18:09

programmes en python vous trouverez

play18:10

certains moment vous dire bah tiens ah

play18:11

oui effectivement là je peux peut-être

play18:13

faire une méthode statique ça peut être

play18:14

la solution à mon problème donc vous en

play18:15

faites pas mettez-le notez-le quelque

play18:17

part gardez-le de côté le jour où vous

play18:19

en aurez besoin B vous verrez que ça

play18:20

aura son utilité à ce moment-là et pas

play18:21

avant voilà voilà je vous dis à très

play18:24

bientôt pour la prochaine vidéo donc on

play18:25

se retrouvra pour la séance 13 et nous

play18:27

parlerons cette fois des propriétés donc

play18:29

c'est une autre notion de tout ce qui

play18:30

est programmation objet en attendant

play18:32

révisez bien entraînez-vous n'hésitez

play18:34

pas à faire plein de programmes à

play18:35

commenter poser des questions likeer

play18:36

enin tout partager la vidéo surtout

play18:38

parce que c'est vraiment très important

play18:40

et à très bientôt je vous dis pour la

play18:42

séance numéro 13

play18:47

[Musique]

Rate This

5.0 / 5 (0 votes)

Related Tags
PythonProgrammationClassesMéthodesInstancesFormationOOPDéveloppementTutorielsDéfinition
Do you need a summary in English?