Il est temps de parler de décorateur.
Un autre terme clé en Python, et nous avons déjà vu celui de décorateur.
Tu te souviens quand nous construisions des classes, je t'ai appris qu'il y avait une méthode de classe et une méthode
statique et j'ai dit, hé, ne t'inquiète pas pour ça.
Nous en parlerons plus tard.
Eh bien, c'est maintenant le look du décorateur plus tard comme ça.
Ils avaient le signe at puis une sorte de nom qui le suivait.
Mais pour que nous comprenions pleinement ce que sont les décorateurs, nous devons parler des fonctions en Python et pourquoi elles
sont si puissantes.
C'est la chose intéressante à propos de Python dans les fonctions Python sont ce que nous appelons des citoyens de première classe.
C'est-à-dire qu'elles peuvent être transmises comme des variables.
Ils peuvent être un argument à l'intérieur d'une fonction.
Ils agissent comme, eh bien, des variables.
Laissez-moi vous montrer, si je crée une fonction halo, qui franchement est complètement inutile car elle ne
fait que dire bonjour.
Si je fais ça.
Rappelez-vous, j'ai dit que les fonctions ne sont à peu près que des variables en Python.
Encore une fois, quelque chose qui n'est pas toujours le cas avec tous les langages de programmation.
Donc si je le voulais, je peux dire que Grete équivaut à bonjour.
Alors que si j'imprime Grete.
Et je lance ça.
Je reçois bonjour, et si je passe juste bonjour comme ça, si je lance ça ?
Eh bien, j'obtiens l'emplacement de la fonction en mémoire, je devrais donc utiliser une grille comme celle-ci et l'exécuter correctement.
Nous devons appeler la fonction hello.
OK, et si on faisait ça ?
Et si je dis supprimer ?
Bonjour, un clavier et un python qui supprime cette fonction.
Que penses-tu qu'il va se passer?
Voyons si je lance ça.
Hum, c'est ce que tu attendais ?
Vous attendiez-vous à ce que la cupidité fonctionne encore ?
Ce qui est intéressant à propos de Python, c'est que je crée hello et qu'il est maintenant créé en mémoire, lorsque nous
arrivons à la ligne quatre, je dis, hé, salut va pointer vers bonjour.
Alors bonjour peut toujours être appelé ici.
Je peux toujours dire bonjour car bonjour est le nom de la fonction qui pointe vers cet emplacement en mémoire.
Mais quand je supprime bonjour, tout ce qu'il fait, c'est dire, hé, je vais supprimer cette fonction, ce nom fait référence à
cette fonction qui est en mémoire.
Cependant, parce que salue toute une autre variable pointe toujours vers cette fonction.
Je vais supprimer le mot bonjour, donc si je vais bonjour comme ça.
Je vais chercher un nom d'air bonjour qui n'est pas défini, cependant.
La grille pointe toujours en mémoire vers cet emplacement, donc Python est assez intelligent pour dire, hé, vous m'avez dit de supprimer
bonjour, je vais supprimer le nom bonjour, mais je ne vais pas supprimer la fonction
car la cupidité est toujours pointant dessus.
Ainsi, les fonctions en Python agissent exactement comme les variables le font pour leurs citoyens de première classe.
On peut aussi passer des fonctions.
À l'intérieur des arguments, d'accord, si je dis bonjour et que ce bonjour reçoit une autre fonction qui
appelle, disons.
Fonctionne comme ça.
Eh bien, je peux créer une fonction de grille, disons définir une grille.
Et cette fonction va juste s'imprimer.
Toujours ici.
Maintenant, ici, si j'appelle bonjour.
Avec.
Grete.
Ou juste pour que nous soyons clairs, disons simplement un égal à bonjour, et si j'imprime un, que se passera-t-il ?
Cela fonctionne toujours parce que ce qui se passe, c'est que je dis, hé, appelez la fonction bonjour, OK,
j'appelle la fonction bonjour avec l'argument.
Super.
Nous allons donc ici et nous disons, hé, exécutez la fonction et quelle fonction nous voulons appeler cette fonction.
Exact, parce que nous avons ces crochets.
Nous sautons donc sur quelle fonction est ce qui dans notre cas est la cupidité.
Alors nous allons ici et disons, hé, imprimez simplement ceci, nous n'avons pas à l'appeler ici parce que la fonction
Halo l'appelle pour nous.
Alors pourquoi je t'ai juste appris tout ça ?
Qu'est-ce que cela a à voir avec les décorateurs de décorateur n'est possible qu'en raison de ces fonctionnalités,
cette capacité des fonctions à agir comme des variables, à agir comme des citoyens de première classe et python.
Et lorsque nous commençons à en apprendre davantage sur les décorateurs sous le capot, ils utilisent ce pouvoir de fonctions.
De temps en temps des vidéos à venir, nous allons parler de la façon de créer les nôtres,
de ce qu'elles signifient et de développer cette idée de décorateur.
Mais voici la forme abrégée de ce que font les décorateurs, les décorateurs surchargent notre fonction si nous avions notre
fonction, disons bonjour ici.
En ajoutant une sorte de décorateur comme celui-ci, nous pouvons surcharger notre fonction et lui ajouter des fonctionnalités supplémentaires.
Cela permet à l'interpréteur Python de savoir que je veux que cette fonction hello ait des fonctionnalités supplémentaires, mais explorons un peu
plus ce sujet dans la prochaine vidéo.