Maison >développement back-end >Tutoriel Python >Quelles sont les utilisations courantes des décorateurs Python ?
Dans cet article, nous apprendrons les utilisations courantes des décorateurs Python
Un décorateur Python est un morceau de code qui permet des ajouts ou des mises à jour de fonctions existantes sans avoir à modifier la définition de la fonction sous-jacente. Lorsqu'un programme s'exécute, il essaie d'éditer une autre partie de lui-même, appelée métaprogrammation.
Decorator est un type de fonction qui prend une fonction et renvoie une autre fonction, ou prend une classe et renvoie une autre classe. Il peut s'agir de n'importe quel appelable (fonction, classe, méthode, etc.) et peut renvoyer n'importe quoi, il peut également prendre une méthode ;
Les décorateurs Python sont faciles à utiliser.
Le décorateur accepte un objet appelable, qui implémente la méthode spéciale __call()__, appelée objet appelable, qui ajoute des fonctionnalités et renvoie un objet appelable.
La traduction chinoise de@somedecorator def exmple_decorators(): print("Hello tutorialspoint python decorators")
Écrire des décorateurs, en revanche, nécessite un ensemble de compétences complètement différentes. Ce n'est pas une question simple ; vous devez bien comprendre ce qui suit :
Il faut beaucoup de temps pour maîtriser et perfectionner tout cela. Et vous avez déjà une longue liste de choses à apprendre.
Est-ce que cela vaut la peine ?
La réponse est évidemment Oui. Quels sont les principaux avantages d’écrire des décorateurs ? Vous permettent-ils d’exceller sans effort dans votre développement quotidien ?
Voyons !
Nous devons souvent mesurer spécifiquement ce qui se passe et collecter des métriques qui quantifient différentes opérations, en particulier pour les grandes applications. Les décorateurs peuvent résoudre cette exigence d’une manière extrêmement lisible et simple en encapsulant ces événements remarquables dans leurs propres fonctions ou méthodes.
Le système de types de Python est fortement typé mais dynamique. Bien que cela présente de nombreux avantages, cela signifie également que certains problèmes peuvent être détectés au moment de la compilation par des langages à typage plus statique tels que Java.
En plus de cela, vous souhaiterez peut-être mettre en œuvre des contrôles personnalisés plus complexes sur les données entrant et sortant du système. Les décorateurs vous aident à gérer tout cela et à l’appliquer à plusieurs fonctions en même temps.
Une fois que vous aurez appris à écrire des décorateurs, vous pourrez bénéficier de leur syntaxe concise, qui vous permet d'ajouter facilement de la sémantique au langage. C’est aussi proche que possible de pouvoir étendre la syntaxe Python.
De nombreux frameworks open source célèbres l'utilisent. Le framework d'application Web Flask l'utilise pour acheminer les URL vers des fonctions qui gèrent les requêtes HTTP.
Avec une syntaxe de fonction élégante, une prise en charge de la programmation fonctionnelle et un système d'objets complet, Python fournit des outils très puissants pour encapsuler le code sous une forme facilement réutilisable. Cependant, ces outils ne peuvent à eux seuls capturer certains modèles de réutilisation du code.
Envisagez d'utiliser l'API Flakey. Vous envoyez une requête via HTTP à un objet qui comprend JSON et 99,9 % du temps, il fonctionne. Cependant, un petit pourcentage de toutes les requêtes entraînera le renvoi d'une erreur interne par le serveur, vous obligeant à réessayer la requête. Dans ce cas, vous devez ajouter une logique de nouvelle tentative.
La traduction chinoise de# Creating a decorator function def decoratorFunction(demofunction): def innerFunc(): print("Yup...It is a decorated function") demofunction() return innerFunc() # Creating a regular ordinary function def normalFunction(): print("Yup...It is a normal ordinary function") decoratedResult = decoratorFunction(normalFunction) decoratedResult
Une fois exécuté, le programme ci-dessus générera le résultat suivant -
Yup...It is a decorated function Yup...It is a normal ordinary function
decoratorFunction() est un décorateur de l'exemple précédent. En termes simples, un décorateur est un wrapper qui enveloppe un objet (sans le modifier) et ajoute de nouvelles fonctionnalités à l'objet d'origine. Comme il s’agit d’une technique couramment utilisée, Python fournit une fonctionnalité syntaxique (appelée décorateur) qui facilite son utilisation. Considérez ce qui suit à titre d'exemple −
Fonction suivante :
@decorated_func def ordinary_function(): print("This is ordinary function")
est égal à
def ordinary_function(): print("This is ordinary function") decorated = decorated_func(ordinary_func)
Écrire des décorateurs est difficile au début. Ce n’est pas sorcier non plus, mais il faut beaucoup d’efforts pour apprendre et comprendre des détails avec lesquels de nombreux développeurs ne se soucient jamais. Cela fonctionne à votre avantage. Si vous devenez la personne de l'équipe qui apprend à écrire correctement des décorateurs et écrit des décorateurs qui répondent à des questions du monde réel, d'autres développeurs utiliseront vos décorateurs. Une fois terminé le dur travail d’écriture des décorateurs, leur utilisation est très simple. Cela peut considérablement augmenter l’impact positif du code que vous développez. Cela pourrait même faire de vous un maître.
Les décorateurs sont une fonctionnalité incroyable qui peut être utilisée à diverses fins. Il ne s'agit pas simplement « d'une fonction ou d'une classe qui prend une fonction ou une classe et renvoie une fonction ou une classe ».
Quelle que soit la méthode que vous utilisez pour apprendre à créer des décorateurs, vous serez probablement enthousiasmé par ce que vous pouvez réaliser en les utilisant et par la façon dont cela changera (sans blague) la façon dont vous écrivez du code Python pour toujours !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!