Maison >développement back-end >Tutoriel Python >Décorateurs Python : ajouter de la magie à vos fonctions, une couche à la fois

Décorateurs Python : ajouter de la magie à vos fonctions, une couche à la fois

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 17:41:09764parcourir

Python Decorators: Adding Magic to Your Functions, One Layer at a Time

Qu’est-ce qu’un décorateur exactement ?

Un décorateur en Python est un outil puissant qui vous permet d'envelopper des fonctionnalités supplémentaires autour d'une fonction existante. Considérez cela comme une couche supplémentaire de « génial » sur une fonction, sans réellement changer le code d'origine.


Comment travaillent les décorateurs

Un décorateur est simplement une fonction qui prend une autre fonction en entrée, ajoute des fonctionnalités supplémentaires et renvoie une nouvelle fonction.

Exemple :

def shout(func):
    def wrapper():
        return func().upper()
    return wrapper

@shout
def greet():
    return "hello"

print(greet())  # Outputs: HELLO

Ici, le décorateur @shout transforme greet() pour qu'il renvoie sa sortie en majuscules.


Cas d'utilisation courants pour les décorateurs

Les décorateurs sont pratiques pour ajouter des fonctionnalités transversales aux fonctions, comme :

  • Journalisation : journalisation automatique chaque fois qu'une fonction est appelée.
  • Authentification : Vérification des autorisations avant d'exécuter des fonctions sensibles.
  • Timing : mesurer le temps nécessaire à l'exécution d'une fonction.

Décorateurs empilables

Oui, vous pouvez empiler plusieurs décorateurs pour appliquer plusieurs couches de fonctionnalités à une seule fonction.

@authenticate
@log
def process_data(data):
    # Function code

Cela exécute d'abord l'authentification, puis le journal et enfin process_data.


Derniers mots : les décorateurs : les meilleurs amis de votre fonction

Les décorateurs vous permettent d'ajouter de la puissance à votre code sans encombrement. Ils constituent votre raccourci vers des fonctions propres, réutilisables et améliorées.

? Place aux fonctions qui en font plus, sans le désordre !"

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn