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
Libérer: 2024-11-26 17:41:09
original
807 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal