Quand utiliser les décorateurs en python ?

Table des matières:

Quand utiliser les décorateurs en python ?
Quand utiliser les décorateurs en python ?
Anonim

Un décorateur en Python est une fonction qui prend une autre fonction comme argument, et retourne encore une autre fonction. Les décorateurs peuvent être extrêmement utiles car ils permettent l'extension d'une fonction existante, sans aucune modification du code source de la fonction d'origine.

Quand utiliser un décorateur ?

Les décorateurs sont utilisés pour tout ce que vous voulez "envelopper" de manière transparente avec des fonctionnalités supplémentaires. Django les utilise pour envelopper la fonctionnalité "connexion requise" sur les fonctions d'affichage, ainsi que pour enregistrer les fonctions de filtrage. Vous pouvez utiliser des décorateurs de classe pour ajouter des journaux nommés aux classes.

Où pouvons-nous utiliser des décorateurs en Python ?

Les décorateurs sont des outils très puissants et utiles en Python puisqu'ils permettent aux programmeurs de modifier le comportement d'une fonction ou d'une classe. Les décorateurs nous permettent d'envelopper une autre fonction afin d'étendre le comportement de la fonction enveloppée, sans la modifier de façon permanente.

Pourquoi devrions-nous utiliser le décorateur Python plus souvent ?

Python Decorator est un outil puissant qui peut nous aider à manipuler les fonctionnalités d'une fonction, une méthode de test en ajoutant simplement @decorator_name. … Les fonctions en Python peuvent également prendre une autre fonction en entrée, puis renvoyer une autre fonction. Cette technique est appelée fonction d'ordre supérieur.

Quels sont les avantages des décorateurs ?

Avantages du modèle de conception de décorateur

  • Çaest plus flexible que l'héritage car l'héritage ajoute de la responsabilité au moment de la compilation mais le modèle de décorateur s'ajoute au moment de l'exécution.
  • Nous pouvons avoir n'importe quel nombre de décorateurs et aussi dans n'importe quel ordre.
  • Il étend les fonctionnalités de l'objet sans affecter aucun autre objet.

Conseillé: