Maison > développement back-end > Tutoriel Python > Introduction à l'utilisation de la méthode __call__ en python (avec exemples)

Introduction à l'utilisation de la méthode __call__ en python (avec exemples)

不言
Libérer: 2018-09-17 16:38:02
original
4489 Les gens l'ont consulté

Cet article vous apporte une introduction à l'utilisation de la méthode __call__ en python (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Si une classe en python définit la méthode __call__, alors son instance de cette classe peut être appelée en tant que fonction, c'est-à-dire que l'opérateur () est implémenté et le protocole objet peut être appelé

Ce qui suit est un exemple simple :

class TmpTest:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __call__(self, x, y):
        self.x, self.y = x, y


a = TmpTest(1, 2)
a(4, 5)
print(a.x, a.y)
Copier après la connexion

Dans cet article, nous n'aborderons pas la partie décoration. Nous utiliserons le décorateur pour expliquer l'utilisation d'une méthode __call__ Si vous avez besoin d'utiliser un. classe en tant que décorateur, vous devez implémenter la méthode __call__ pour cette classe. Un exemple d'utilisation de __call__ pour implémenter un décorateur de classe :

class TmpTest:
    def __init__(self, func):
        self.func=func
    def __call__(self, *args,**kwargs):
        result=self.func(*args,**kwargs)
        return result
@TmpTest
def add_num(x,y):
    return x+y

print(add_num(1,0))
Copier après la connexion
.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal