__call__ in Python

Python verfügt über eine Reihe integrierter Methoden und __call__> Ist einer von ihnen. Der __call__> Mit der Methode können Python-Programmierer Klassen schreiben, deren Instanzen sich wie Funktionen verhalten und wie eine Funktion aufgerufen werden können. Wenn die Instanz als Funktion aufgerufen wird; Wenn diese Methode definiert ist, x(arg1, arg2, ...)> ist eine Abkürzung für x.__call__(arg1, arg2, ...)> .

object() is shorthand for object.__call__() 

Beispiel 1:




class> Example:> > def> __init__(> self> ):> > print> (> 'Instance Created'> )> > > # Defining __call__ method> > def> __call__(> self> ):> > print> (> 'Instance is called via special method'> )> > # Instance created> e> => Example()> > # __call__ method will be called> e()>

Ausgabe :

 Instance Created Instance is called via special method 

Beispiel 2:




class> Product:> > def> __init__(> self> ):> > print> (> 'Instance Created'> )> > > # Defining __call__ method> > def> __call__(> self> , a, b):> > print> (a> *> b)> > # Instance created> ans> => Product()> > # __call__ method will be called> ans(> 10> ,> 20> )>

Ausgabe :

 Instance Created 200