Kommentare
- Eine Hook-Methode ist eine konkrete Methode in einer abstrakten Klasse, die von Unterklassen überschrieben werden kann, in der abstrakten Klasse jedoch ein Standardverhalten aufweist.
Antwort
Meine Antwort bezieht sich auf WordPress, das in PHP geschrieben ist, aber dies ist eine allgemeine Entwicklungsmechanik, also sollte es nicht „Es ist nicht wirklich wichtig, obwohl Sie“ Python „in Ihren Fragentitel eingefügt haben.
Ein gutes Beispiel für die Verwendung von Hooks, zufällig in der Webentwicklung, sind WordPress „-Hooks .
Sie werden entsprechend benannt, da sie eine Möglichkeit bieten, bestimmte Punkte der Programmausführung“ einzuhaken „.
Also für Beispiel: Die wp_head ist eine „Aktion“, die beim Rendern eines WordPress-Themas ausgegeben wird und sich an dem Teil befindet, an dem der Teil gerendert wird, der „s“ ist innerhalb der <head>
-Tags. Angenommen, Sie möchten ein Plugin schreiben, für das ein zusätzliches Stylesheet, Skript oder etwas erforderlich ist, das normalerweise in diese Tags passt. Sie können sich in diese Aktion „einhaken“, indem Sie eine Funktion definieren, die aufgerufen werden soll, wenn diese Aktion ausgegeben wird. So etwas wie:
add_action("wp_head", "your_function");
your_function()
könnte so einfach sein wie:
function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; }
Wenn WordPress diese Aktion mit do_action("wp_head");
ausgibt, wird your_function()
angezeigt war in diese Aktion „eingebunden“ , daher wird diese Funktion aufgerufen ( und es werden alle Argumente übergeben, falls erforderlich, wie in der Dokumentation für einen bestimmten Hook definiert).
Lange Rede, kurzer Sinn: Sie können zusätzliche Funktionen an bestimmten Punkten der Programmausführung hinzufügen, indem Sie diese Punkte „einbinden“, in den meisten Fällen durch Zuweisen eines Funktionsrückrufs.
Antwort
Abhängig vom Hintergrund der fragenden Person kann die Antwort auf diese Frage manchmal so einfach sein, wie Hooks normalerweise ein anderes Wort für einen Ereignishandler sind. für die Blaenk eine hervorragende Erklärung gegeben hat.
Es gibt auch Verwendungen dieses Ausdrucks, wenn Sie ein Ereignis o injizieren r Code in einen Prozess, der ansonsten keine Ereignisse wie moles enthält.
Kommentare
- Danke Bill, Maulwürfe sehen aus wie ein .NET-Konzept, das mir völlig fremd ist. Könnten Sie mich bitte auf etwas Pythonisches oder PHP oder etwas Allgemeineres hinweisen?
- Leider habe ich ' Verwenden Sie diese beiden nicht genug, um Fachwissen zu beanspruchen, aber wenn ich es richtig lese, glaube ich, dass stackoverflow.com/questions/156230/… ist eine ähnliche Idee, die diskutiert wird, aber Maulwürfe können eine kompilierte Baugruppe einbinden. Ein Miniport-Treiber ist ein weiterer Ort, an dem manchmal die Hook-Phrase verwendet wird. Mein Punkt war mehr, dass die Terminologie " hook " manchmal anders verwendet werden kann, in älteren MS-Technologien sowieso, vielleicht bei der zweiten Verwendung gilt nicht auch für Python.