Python a-z

Twoje centrum interaktywnej nauki Pythona: fiszki, przykłady kodu i edytor w przeglądarce.

Poziom: średni Fiszka #140 · Python

Jakie są zastosowania metody `__call__` w klasach Pythona?

💡 Wskazówka do nauki: Zanim odsłonisz odpowiedź poniżej, spróbuj samodzielnie sformułować definicję lub napisać krótki przykład kodu w głowie (albo w naszym edytorze online).

Pokaż odpowiedź i przykład kodu

Opis i wyjaśnienie:

Metoda `__call__` pozwala na traktowanie instancji klasy jako wywoływalne obiekty (funkcje). To jest używane w różnych sytuacjach, na przykład do tworzenia funkcji callback, opakowywania funkcji, i w wielu innych przypadkach, gdzie klasy muszą zachowywać się jak funkcje.

Przykład w Pythonie:

class Mult:
    def __init__(self, k): self.k = k
    def __call__(self, x): return self.k * x
razy2 = Mult(2)
print(razy2(21))