Maison  >  Article  >  développement back-end  >  Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

王林
王林avant
2023-04-12 17:25:071528parcourir

Exemple

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 :

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

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 :

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

Le résultat de l'exécution du programme est le suivant :

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

Décorateur de classe avec les paramètres *args et **kwargs

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 :

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

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 :

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

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

Décorateur de classe avec retour déclaration

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__.

Programmation Python : Comment implémenter des décorateurs de classes et des applications ? Points clés à retenir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer