Commentaires
- Une méthode hook est une méthode concrète dans une classe abstraite qui peut être remplacée par des sous-classes, mais elle a un comportement par défaut dans la classe abstraite.
Réponse
Ma réponse se rapporte à WordPress qui est écrit en PHP, mais cest un mécanisme de développement général donc il ne devrait pas « Cela na pas vraiment dimportance, malgré le fait que vous ayez mis » python « dans le titre de votre question.
Un bon exemple dutilisation des hooks, par coïncidence dans le développement Web, sont WordPress « hooks .
Ils sont nommés de manière appropriée dans la mesure où ils permettent de » saccrocher « à certains points de lexécution dun programme.
Donc pour exemple, le wp_head est une « action » qui est émise lorsquun thème WordPress est en cours de rendu et qui se trouve à lendroit où il rend la partie qui « s dans les balises <head>
. Dites que vous souhaitez écrire un plugin qui nécessite une feuille de style supplémentaire, un script ou quelque chose qui entrerait normalement dans ces balises. Vous pouvez «accrocher» cette action en définissant une fonction à appeler lorsque cette action est émise. Quelque chose comme:
add_action("wp_head", "your_function");
your_function()
pourrait être quelque chose daussi simple que:
function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; }
Maintenant, lorsque WordPress émet cette action en faisant quelque chose comme do_action("wp_head");
, il verra que your_function()
a été « accroché » à cette action, donc il appellera cette fonction ( et lui passera tous les arguments si elle en prend, comme défini dans la documentation pour un hook particulier ).
Pour faire court: il vous permet dajouter des fonctionnalités supplémentaires à des points spécifiques de lexécution dun programme en « accrochant » ces points, dans la plupart des cas en attribuant un rappel de fonction.
Réponse
Selon les antécédents de la personne qui pose la question, la réponse à cette question peut parfois être aussi simple que les crochets sont généralement un autre mot pour un gestionnaire dévénements, Blaenk a donné une excellente explication.
Il y a aussi des utilisations de cette phrase qui sont lorsque vous injectez un événement o r code dans un processus qui autrement na pas dévénements comme moles par exemple.
Commentaires
- Merci Bill, moles ressemble à un concept .NET, qui mest totalement étranger, pourriez-vous sil vous plaît me diriger vers quelque chose de pythonique ou de php ou quelque chose de plus général.
- Malheureusement, je ne ' t utiliser suffisamment ces deux pour revendiquer lexpertise, mais si je le lis correctement, je crois que stackoverflow.com/questions/156230/… est une idée similaire en cours de discussion, mais les taupes peuvent accrocher un assemblage compilé. Un pilote de miniport est un autre endroit où lexpression crochet est parfois utilisée. Mon argument était plus que la terminologie " hook " peut être utilisée dune autre manière parfois, dans les anciennes technologies MS de toute façon, peut-être que la deuxième utilisation le fait ne sapplique pas non plus à python.