Verwendung der Methode __call__ in der Python-Klasse

Beim Erstellen einer Klasse verwende ich häufig init, aber wenn ich call erhalte, interpretiere ich es auf meine eigene Weise.

Die Umgebung ist Python 3.5.1 :: Anaconda 2.5.0 (x86_64) Laufen Sie auf Jupyter Notebook

__call__ wird aktiviert, wenn es wie eine Funktion aufgerufen wird

Klassenbeispiel

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)

Ausführungsbeispiel

>>> a = A(1)
A init

>>> a(2)
A call
3

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

>>> b(4)
B call
8

In der Instanziierung wird nur __init__ aufgerufen. Wenn Sie jedoch die erstellte Instanz mit Argumenten wie einer Funktion aufrufen, wird __call__ aufgerufen. Wenn Sie __call__ einen Rückgabewert geben, können Sie den von der Instanz erhaltenen Wert natürlich für eine andere Variable verwenden.

Recommended Posts

Verwendung der Methode __call__ in der Python-Klasse
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Verwendung von __slots__ in der Python-Klasse
Verwendung der C-Bibliothek in Python
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Verwendung des in Lobe in Python erlernten Modells
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Ich habe versucht "Wie man eine Methode in Python dekoriert"
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
[Python] Wie man eine Klasse iterierbar macht
Wie bekomme ich Stacktrace in Python?
Verwendung regulärer Ausdrücke in Python
Verwendung ist und == in Python
Verwendung der Python-Multiprocessing (Fortsetzung 3) apply_async in einer Klasse mit Pool als Mitglied
So bestimmen Sie die Existenz eines Selenelements in Python
So überprüfen Sie die Speichergröße einer Variablen in Python
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
Verwendung der Python-Bildbibliothek in der Python3-Serie
So erstellen Sie eine JSON-Datei in Python
Dynamisches Ersetzen der nächsten Methode in Python
Zusammenfassung der Verwendung von MNIST mit Python
[Algorithmus x Python] Verwendung der Liste
So benachrichtigen Sie Discord-Kanäle in Python
So erhalten Sie die Dateien im Ordner [Python]
Wie man tkinter mit Python in Pyenv benutzt
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
[Python] Verwendung der for-Anweisung. Eine Methode zum Extrahieren durch Angabe eines Bereichs oder von Bedingungen.
python3: Verwendung der Flasche (2)
Verwendung des Generators
[Python] Verwendung von Liste 1
So rufen Sie eine Funktion auf
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Wie man in Python entwickelt
[Python] Verwendung von input ()
Wie benutzt man den Dekorateur?
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes
So rufen Sie den n-ten größten Wert in Python ab
So erhalten Sie den Variablennamen selbst in Python
So ermitteln Sie die Anzahl der Stellen in Python
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Verwendung von Raspeye Relay Module Python
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Verwendung von Bootstrap in der generischen Klassenansicht von Django
[Python] Verwendung der Diagrammerstellungsbibliothek Altair
Verwendung der Exist-Klausel in Django Queryset