Maison > Article > développement back-end > Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir
Les décorateurs en Python peuvent être soit des fonctions, soit des classes. Dans les sections précédentes, nous avons utilisé des décorateurs de fonctions. Nous allons maintenant apprendre à définir les décorateurs de classe.
Nous définirons des classes personnalisées qui font office de décorateurs. Lorsqu'une fonction est décorée/modifiée avec une classe, la fonction devient une instance de cette classe. Découvrons-le :
Comme indiqué ci-dessus, nous avons créé un décorateur de classe simple. Pour qu’une classe devienne décoratrice, elle doit implémenter la méthode __call__(). La méthode __call__() fonctionne de la même manière qu’une fonction wrapper dans un décorateur de fonctions.
Utilisons maintenant cette classe pour décorer une fonction :
Le résultat de l'exécution du programme est le suivant :
Afin de laisser le le décorateur de classe utilise des paramètres Avec *args et **kwargs, nous devons implémenter la méthode __call__() avec ces paramètres et les transmettre à la fonction modifiée. La méthode de représentation générale est la suivante :
Dans le code ci-dessus, la méthode __call__() du décorateur de classe accepte les paramètres *args et **kwargs. Dans la ligne de code, la méthode d'appel les transmet à la fonction décorée : self.func(*args,**kwargs).
Maintenant, nous utilisons ce décorateur de classe pour décorer une fonction :
Fonction de décoration de décoration de classe
Le résultat de l'exécution du programme est similaire au suivant :
Hello Solo Cui
Rappelez-vous que dans la fonction wrapper du décorateur de fonction, nous pouvons utiliser le mot-clé return pour renvoyer la fonction décorée. Nous ferons la même chose ici, mais à l'intérieur de la méthode __call__.
Le décorateur de classe qui renvoie le résultat
La sortie du programme en cours d'exécution est la suivante :
TRACY CUI
Comme indiqué ci-dessus, nous renvoyons la fonction modifiée dans la méthode __call__ :
return self .func(*args,**args)
C'est la fin de l'introduction aux décorateurs de Python.
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!