[PYTHON] Was ist die Rückruffunktion?

Zusammenfassend ist die Rückruffunktion

Eine Rückruffunktion ist eine weitere Funktion, die beim Aufruf einer bestimmten Funktion in einem Computerprogramm als Argument übergeben wird. [Was ist eine Rückruffunktion](http://e-words.jp/w/%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83] % E3% 82% AF% E9% 96% A2% E6% 95% B0.html)

Einfacher ausgedrückt ist es eine Funktion, die als Argument verwendet wird. Nein, verstehst du Irgendwie das. Wie benutzt man es? Lol

Schauen wir uns ein konkretes Beispiel an.

Beispielcode

def callback_add(a, b):
    print('{} + {} = {}'.format(a, b, a + b))

def callback_times(a, b):
    print('{} × {} = {}'.format(a, b, a * b))

def handler(a, b, callback):
    callback(a, b)

if __name__=='__main__':
    handler(3, 5, callback_add)
    handler(3, 5, callback_times)
3 + 5 = 8
3 × 5 = 15

Wobei * callback_add, callback_times * die Rückruffunktionen sind. Übrigens scheint die Funktion, die die Rückruffunktion aufruft, häufig als Handler bezeichnet zu werden. Der Vorteil der Rückruffunktion scheint zu sein, dass der Aufrufer der Funktion ** einen vorbestimmten Prozess passieren kann **.

Hmm ... ・ ・ ・ ** Es ist schwer zu verstehen, wie man es benutzt **. Wann wirst du es benutzen? !! !! !! !! !! !! Es macht mich verrückt sein wollen. Lol Gehen wir also noch einen Schritt weiter.

Beispiel, wenn die Rückruffunktion nicht verwendet wird

def f1():
    name = 'Mike'
    say_hello(name)

def say_hello(name):
    print(name, 'Herr.,Hallo!')

def say_bye(name):
    print(name, 'Herr.,Auf Wiedersehen!')

def f2():
    name = 'Mike'
    say_bye(name)

if __name__=='__main__':
    f1()
    f2()
Mike,Hallo!
Mike,Auf Wiedersehen!

Wenn Sie die Logik erstellen, dass say_hello in f1 ist, ohne die Rückruffunktion zu verwenden, müssen Sie erneut eine neue f2 erstellen, wenn Sie etwas anderes mit diesem Namen sagen möchten. Und je mehr Sie erhöhen, desto mehr f3, f4. Dies ist sehr unpraktisch. In einem solchen Fall verwenden Sie die Rückruffunktion.


def f1(callback):
    name = 'Mike'
    callback(name)

def say_hello(name):
    print(name, 'Herr Hallo!')

def say_bye(name):
    print(name, 'Auf Wiedersehen!')

if __name__=='__main__':
    f1(say_hello)
    f1(say_bye)

Das obige ist das gleiche Beispiel, jedoch mit der Rückruffunktion. Es ist wahnsinnig schön ... Egal wie stark Sie es erhöhen, es passt in f1 und Sie müssen nur die Funktion von say_〇〇 erhöhen. Wenn Sie noch nicht zur Sache gekommen sind, schauen Sie bitte auf das obere und untere Kabel. Und wenn Sie darüber nachdenken, während Sie es von Hand verfolgen, werden Sie verstehen.

Wenn Sie sich an die Rückruffunktion erinnern, wird der Funktionsumfang erheblich erweitert.

Verweise

[Was ist eine Rückruffunktion](http://e-words.jp/w/%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83] % E3% 82% AF% E9% 96% A2% E6% 95% B0.html) Vorteile der Rückruffunktion

Recommended Posts

Was ist die Rückruffunktion?
Was ist die Aktivierungsfunktion?
Was ist eine Rückruffunktion?
[Python] Was ist eine Zip-Funktion?
[Python] Was ist @? (Über Dekorateure)
[Python] Was ist der sortierte Schlüssel?
Was ist das X Window System?
Wofür ist der Python-Unterstrich (_)?
Was ist ein Namespace?
Was ist copy.copy ()
Was ist Django? .. ..
Was ist POSIX?
Was ist Linux?
Was ist Clivoa, ein Framework für die ETL-Verarbeitung?
Was ist klass?
Was ist die Ursache für den folgenden Fehler?
Was ist SALOME?
Was ist "Mahjong" in der Python-Bibliothek? ??
Was ist Linux?
Was ist Python?
Was ist Hyperopt?
Was ist Linux?
Was ist Pyvenv?
Was ist __call__?
Was ist Linux?
Was ist Python?
Was ist der Unterschied zwischen "pip" und "conda"?
(Linux-Anfänger) Was ist das Zauberwort aux?
Was ist der Unterschied zwischen Unix und Linux?
Was ist eine Distribution?
Was ist Piotroskis F-Score?
Was ist Raspberry Pi?
[Python] Was ist Pipeline ...
Was ist das Calmar-Verhältnis?
Was ist ein Terminal?
[PyTorch Tutorial ①] Was ist PyTorch?
Was ist Hyperparameter-Tuning?
Was ist ein Hacker?
Die erste GOLD "Funktion"
Was ist JSON? .. [Hinweis]
Informationen zur Entfaltungsfunktion
Wofür ist Linux?
Was ist ein Zeiger?
Was ist Ensemble-Lernen?
Was ist TCP / IP?
Was ist Pythons __init__.py?
Was ist ein Iterator?
Was ist UNIT-V Linux?
[Python] Was ist virtualenv?
Was ist maschinelles Lernen?
Was ist der Unterschied zwischen usleep, nanosleep und clock_nanosleep?
Was ist das Domain-Attribut, das in Plotlys Layout geschrieben ist?
Was ist ein empfohlener Motor? Zusammenfassung der Typen
[Python] Stellen Sie sicher, dass die empfangene Funktion eine benutzerdefinierte Funktion ist
Rufen Sie die C-Funktion mit dart: ffi auf und rufen Sie die Dart-Funktion zurück
Was bedeutet das letzte () in einer Funktion in Python?
Was ist Mini Sam oder Mini Max?
In Bezug auf die Aktivierungsfunktion Gelu