[PYTHON] Qu'est-ce que la fonction de rappel?

En conclusion, la fonction de rappel est

Une fonction de rappel est une autre fonction qui est passée en argument lors de l'appel d'une certaine fonction dans un programme informatique. [Qu'est-ce qu'une fonction de rappel](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)

Pour le dire plus simplement, c'est une fonction utilisée comme argument. Non, tu comprends? D'une manière ou d'une autre. Comment l'utilisez-vous? Lol

Regardons un exemple concret.

Exemple de code

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

Où * callback_add, callback_times * sont les fonctions de rappel. À propos, il semble que la fonction qui appelle la fonction de rappel soit souvent décrite comme gestionnaire. Le mérite de la fonction de rappel semble être que l'appelant de la fonction peut ** passer un processus prédéterminé **.

Hum ... ・ ・ ・ ** Il est difficile de comprendre comment l'utiliser **. Quand allez-vous l'utiliser! !! !! !! !! !! !! Ça me donne envie d'être fou. Lol Alors allons plus loin.

Exemple lorsque la fonction Callback n'est pas utilisée

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

def say_hello(name):
    print(name, 'M.,salut!')

def say_bye(name):
    print(name, 'M.,Au revoir!')

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

if __name__=='__main__':
    f1()
    f2()
Mike,salut!
Mike,Au revoir!

Si vous construisez la logique selon laquelle say_hello est dans f1 sans utiliser la fonction Callback, vous devrez créer à nouveau un nouveau f2 lorsque vous voudrez dire quelque chose de différent avec ce nom. Et plus vous augmentez, plus f3, f4. Ceci est très gênant. Vous utilisez la fonction de rappel dans un tel cas.


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

def say_hello(name):
    print(name, 'Monsieur Bonjour!')

def say_bye(name):
    print(name, 'Au revoir!')

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

Ce qui précède est le même exemple, mais avec la fonction Callback. C'est incroyablement beau ... Peu importe combien vous l'augmentez, il tiendra dans f1 et il vous suffit d'augmenter la fonction de say_〇〇. Si vous n'êtes pas encore venu au but, veuillez jeter un coup d'œil aux cordons supérieur et inférieur. Et si vous y réfléchissez en le traçant à la main, vous comprendrez.

Si vous vous souvenez de la fonction de rappel, la gamme de fonctions sera considérablement étendue.

Les références

[Qu'est-ce qu'une fonction de rappel](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) Avantages de la fonction de rappel

Recommended Posts

Qu'est-ce que la fonction de rappel?
Quelle est la fonction d'activation?
Qu'est-ce qu'une fonction de rappel?
[Python] Qu'est-ce qu'une fonction zip?
[Python] Qu'est-ce que @? (À propos des décorateurs)
[python] Quelle est la clé triée?
Qu'est-ce que le système X Window?
À quoi sert le trait de soulignement Python (_)?
Qu'est-ce que l'espace de noms
Qu'est-ce que copy.copy ()
Qu'est-ce que Django? .. ..
Qu'est-ce que POSIX
Qu'est-ce que Linux
Qu'est-ce que clivoa, un framework pour le traitement ETL?
Qu'est-ce que le klass?
Quelle est la cause de l'erreur suivante?
Qu'est-ce que SALOME?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
Qu'est-ce que Linux?
Qu'est-ce que python
Qu'est-ce que l'hyperopt?
Qu'est-ce que Linux
Qu'est-ce que pyvenv
Qu'est-ce que __call__
Qu'est-ce que Linux
Qu'est-ce que Python
Quelle est la différence entre «pip» et «conda»?
(Linux débutant) Quel est le mot magique aux?
Quelle est la différence entre Unix et Linux?
Qu'est-ce qu'une distribution?
Qu'est-ce que le F-Score de Piotroski?
Qu'est-ce que Raspberry Pi?
[Python] Qu'est-ce que Pipeline ...
Qu'est-ce que Calmar Ratio?
Qu'est-ce qu'un terminal?
[Tutoriel PyTorch ①] Qu'est-ce que PyTorch?
Qu'est-ce que le réglage des hyper paramètres?
Qu'est-ce qu'un hacker?
La première «fonction» GOLD
Qu'est-ce que JSON? .. [Remarque]
À propos de la fonction Déplier
À quoi sert Linux?
Qu'est-ce qu'un pointeur?
Qu'est-ce que l'apprentissage d'ensemble?
Qu'est-ce que TCP / IP?
Qu'est-ce que __init__.py de Python?
Qu'est-ce qu'un itérateur?
Qu'est-ce que UNIT-V Linux?
[Python] Qu'est-ce que virtualenv
Qu'est-ce que l'apprentissage automatique?
Quelle est la différence entre usleep, nanosleep et clock_nanosleep?
Quel est l'attribut de domaine écrit dans la disposition de Plotly?
Qu'est-ce qu'un moteur de recommandation? Résumé des types
[Python] Assurez-vous que la fonction reçue est une fonction définie par l'utilisateur
Appelez la fonction C avec dart: ffi et rappelez la fonction Dart
Que signifie le dernier () dans une fonction en Python?
Qu'est-ce que Mini Sam ou Mini Max?
Concernant la fonction d'activation Gelu