Mi respuesta se refiere a WordPress que está escrito en PHP, pero esta es una mecánica de desarrollo general, por lo que no debería «Realmente no importa, a pesar de que puso» python «en el título de su pregunta.
Un buen ejemplo del uso de ganchos, casualmente en el desarrollo web, es WordPress «ganchos» .
Se nombran apropiadamente porque permiten una forma de «engancharse» en ciertos puntos de la ejecución de un programa.
Así que para Por ejemplo, el wp_head es una «acción» que se emite cuando se está renderizando un tema de WordPress y está en la parte donde se renderiza la parte que «s dentro de las etiquetas <head>
. Digamos que desea escribir un complemento que requiera una hoja de estilo adicional, un script o algo que normalmente iría dentro de esas etiquetas. Puede «conectar» esta acción definiendo una función que se llamará cuando se emita esta acción. Algo como:
add_action("wp_head", "your_function");
your_function()
podría ser algo tan simple como:
function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; }
Ahora, cuando WordPress emite esta acción haciendo algo como do_action("wp_head");
, verá que your_function()
fue «enganchado» a esa acción, por lo que llamará a esa función ( y le pasará cualquier argumento si es necesario, como se define en la documentación para cualquier gancho en particular ).
Para resumir: le permite agregar funcionalidad adicional en puntos específicos de la ejecución de un programa «enganchando» esos puntos, en la mayoría de los casos asignando una función de devolución de llamada.
Dependiendo de los antecedentes de la persona que pregunta, a veces la respuesta a esta pregunta puede ser tan simple como los ganchos son normalmente otra palabra para un controlador de eventos, para lo cual Blaenk dio una excelente explicación.
También hay usos de esta frase que son cuando se inyecta un evento o r en un proceso que de otra manera no tiene eventos como moles por ejemplo.
Comentarios
- Gracias Bill, los lunares parecen un concepto de .NET, que es totalmente ajeno a mí, ¿podrías indicarme algo pythonic o php o algo más general?
- Lamentablemente no ' No utilizo esos dos lo suficiente para reclamar experiencia, pero si lo leo correctamente, creo que stackoverflow.com/questions/156230/… es una idea similar que se está discutiendo, pero los moles pueden enganchar un ensamblado compilado. Un controlador de minipuerto es otro lugar donde a veces se usa la frase de gancho. Mi punto era más que la terminología " hook " se puede usar de otra manera a veces, en la tecnología de MS más antigua de todos modos, tal vez el segundo uso lo haga no se aplica a Python también.