Comment utiliser la méthode __call__ dans la classe Python

Lors de la création d'une classe, j'utilise beaucoup init, mais quand je reçois call, je l'interprète à ma manière.

L'environnement est Python 3.5.1 :: Anaconda 2.5.0 (x86_64) Exécuter sur le notebook Jupyter

`` call '' est activé lorsqu'il est appelé comme une fonction

Exemple de classe

class_sample.py


class A:
    
    def __init__(self, a):
        self.a = a
        print("A init")
        
    def __call__(self, b):
        print("A call")
        print(b + self.a)
        
class B(A):
    
    def __init__(self, a, c):
        super().__init__(a)
        self.c = c
        print("B init")
    
    def __call__(self, d):
        print("B call")
        print(self.a + self.c + d)

Exemple d'exécution

>>> a = A(1)
A init

>>> a(2)
A call
3

>>> b = B(1,3)
A init
B init

>>> b(4)
B call
8

Seul __init__ '' est appelé lors de l'instanciation. Cependant, si vous appelez l'instance créée avec des arguments comme une fonction, call '' sera appelé. Bien sûr, si vous donnez une valeur de retour à `` call '', vous pouvez utiliser la valeur obtenue à partir de l'instance pour une autre variable.

Recommended Posts

Comment utiliser la méthode __call__ dans la classe Python
[Introduction à Python] Comment utiliser la classe en Python?
Comment utiliser __slots__ dans la classe Python
Comment utiliser la bibliothèque C en Python
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment utiliser le modèle appris dans Lobe en Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
J'ai essayé "Comment obtenir une méthode décorée en Python"
Comment obtenir la dernière (dernière) valeur d'une liste en Python
[Python] Comment rendre une classe itérable
Comment obtenir stacktrace en python
Comment utiliser les expressions régulières en Python
Comment utiliser is et == en Python
Comment utiliser le multitraitement python (suite 3) apply_async en classe avec Pool en tant que membre
Comment déterminer l'existence d'un élément sélénium en Python
Comment vérifier la taille de la mémoire d'une variable en Python
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Comment effacer un taple dans une liste (Python)
Comment incorporer des variables dans des chaînes python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment créer un fichier JSON en Python
Pour remplacer dynamiquement la méthode suivante en python
Résumé de l'utilisation de MNIST avec Python
[Algorithm x Python] Comment utiliser la liste
Comment notifier les canaux Discord en Python
Comment obtenir les fichiers dans le dossier [Python]
Comment utiliser tkinter avec python dans pyenv
[Python] Comment dessiner un histogramme avec Matplotlib
[Python] Explique comment utiliser la fonction range avec un exemple concret
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
[Python] Comment utiliser l'instruction for. Une méthode d'extraction en spécifiant une plage ou des conditions.
python3: Comment utiliser la bouteille (2)
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment appeler une fonction
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Comment développer en Python
[Python] Comment utiliser input ()
Comment utiliser le décorateur
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
Comment récupérer la nième plus grande valeur en Python
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
Comment connaître le répertoire actuel en Python dans Blender
Comment utiliser Raspeye Relay Module Python
[Python] Comment développer des variables dans une chaîne de caractères
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Comment utiliser le bootstrap dans la vue de classe générique Django
[Python] Comment utiliser la bibliothèque de création de graphes Altair
Comment utiliser la clause exist dans l'ensemble de requêtes Django