Mi respuesta se refiere a WordPress que está escrito en PHP, pero esta es una mecánica de desarrollo general, por lo que realmente no debería importar, a pesar de que pones 'python' en el título de tu pregunta.
Un buen ejemplo del uso de ganchos, casualmente en el desarrollo web, son los ganchos de WordPress .
Se nombran apropiadamente porque permiten una forma de 'engancharse' en ciertos puntos de la ejecución de un programa.
Entonces, por ejemplo, wp_head es una 'acción' que se emite cuando se está representando un tema de WordPress y está en la parte donde representa la parte que está dentro de las <head>etiquetas. Supongamos 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 'engancharse' a 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 al hacer algo como do_action('wp_head');esto, verá que your_function()se 'enganchó' 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 enlace particular) )
En pocas palabras: le permite agregar funcionalidades adicionales en puntos específicos de la ejecución de un programa 'enganchándose' a esos puntos, en la mayoría de los casos asignando una devolución de llamada de función.