Maison  >  Article  >  développement back-end  >  Comment utiliser la fonction __call__() en Python pour rendre les objets appelables

Comment utiliser la fonction __call__() en Python pour rendre les objets appelables

WBOY
WBOYoriginal
2023-08-22 10:36:261242parcourir

Comment utiliser la fonction __call__() en Python pour rendre les objets appelables

La fonction __call__() en Python est une méthode spéciale qui permet d'appeler un objet comme une fonction. Lorsqu'un objet est appelé, Python trouve et appelle automatiquement la méthode __call__() de l'objet. La méthode

__call__() peut être utilisée pour définir si une instance d'une classe peut être utilisée comme fonction et son comportement. En implémentant la méthode __call__(), nous pouvons personnaliser le comportement d'appel de l'objet.

Voici un exemple simple qui montre comment utiliser la fonction __call__() en Python pour rendre un objet appelable :

class Counter:
    def __init__(self):
        self.count = 0
        
    def __call__(self):
        self.count += 1
        print("调用次数:", self.count)
        
# 创建一个Counter对象
counter = Counter()

# 调用对象,会触发__call__()方法
counter()  # 输出:调用次数: 1
counter()  # 输出:调用次数: 2
counter()  # 输出:调用次数: 3

Dans le code ci-dessus, nous avons défini une classe Counter qui contient un nombre de variables d'instance et un __call__() méthode. Dans la méthode __call__(), nous incrémentons le nombre de 1 et imprimons le nombre d'appels.

En créant un objet Counter et en l'appelant, nous pouvons voir qu'à chaque fois que la méthode __call__() est appelée, le compteur est incrémenté et le nombre d'appels est affiché.

En plus des exemples ci-dessus, nous pouvons également profiter davantage de la fonction __call__(). Par exemple, nous pouvons définir plusieurs méthodes __call__() dans une classe pour obtenir différents comportements d'appel.

class Adder:
    def __init__(self, a):
        self.a = a
        
    def __call__(self, b):
        return self.a + b

# 创建一个Adder对象
adder = Adder(5)

# 调用对象,会在__call__()方法中执行相应的操作
result = adder(10)
print(result)  # 输出:15

result = adder(20)
print(result)  # 输出:25

Dans le code ci-dessus, nous avons défini une classe Adder, qui contient une méthode __call__(). Dans la méthode __call__(), nous implémentons l'opération d'addition de deux nombres.

En créant un objet Adder et en l'appelant en tant que fonction, nous pouvons obtenir le résultat de la sommation correspondant.

En bref, la fonction __call__() en Python permet d'appeler un objet comme une fonction. Nous pouvons personnaliser le comportement d'appel de l'objet et implémenter des fonctions plus riches en implémentant la méthode __call__(). Il s'agit d'une fonctionnalité puissante de la programmation orientée objet en 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:
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