Comentários
- Um método de gancho é um método concreto em uma classe abstrata que pode ser substituído por subclasses, mas tem um comportamento padrão na classe abstrata.
Resposta
Minha resposta se refere ao WordPress que é escrito em PHP, mas esta é uma mecânica de desenvolvimento geral, então não deveria “Isso realmente importa, apesar de você colocar” python “no título da pergunta.
Um bom exemplo de uso de ganchos, coincidentemente no desenvolvimento da web, são “ganchos do WordPress.
Eles são nomeados apropriadamente, pois permitem uma maneira de” enganchar “certos pontos da execução de um programa.
Então, para exemplo, o wp_head é uma “ação” que é emitida quando um tema do WordPress está sendo renderizado e está na parte onde renderiza a parte que “s nas tags <head>
. Digamos que você queira escrever um plug-in que requeira uma folha de estilo adicional, script ou algo que normalmente estaria dentro dessas tags. Você pode “se conectar” a essa ação definindo uma função a ser chamada quando essa ação for emitida. Algo como:
add_action("wp_head", "your_function");
your_function()
pode ser algo tão simples como:
function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; }
Agora, quando o WordPress emitir esta ação fazendo algo como do_action("wp_head");
, verá que your_function()
foi “enganchado” nessa ação, então chamará essa função ( e passará quaisquer argumentos se for necessário, conforme definido na documentação para qualquer gancho específico ).
Resumindo: permite que você adicione funcionalidade adicional em pontos específicos da execução de um programa “enganchando” esses pontos, na maioria dos casos atribuindo um retorno de chamada de função.
Resposta
Dependendo do histórico da pessoa que faz a pergunta, às vezes a resposta a esta pergunta pode ser tão simples quanto ganchos geralmente são outra palavra para um manipulador de eventos, para o qual Blaenk deu uma explicação excelente.
Também há usos para essa frase que ocorre quando você injeta um evento o código r em um processo que de outra forma não teria eventos como moles , por exemplo.
Comentários
- Obrigado Bill, moles se parece com um conceito .NET, que é totalmente estranho para mim, você poderia me indicar algo pythônico ou php ou algo mais geral.
- Infelizmente eu não ' t use esses dois o suficiente para reivindicar experiência, mas se estou lendo corretamente, acredito stackoverflow.com/questions/156230/… é uma ideia semelhante sendo discutida, mas os moles podem conectar um assembly compilado. Um driver de miniporta é outro lugar onde a frase de gancho é usada às vezes. Meu ponto era mais que a " hook " terminologia pode ser usada de outra maneira às vezes, em tecnologia de MS mais antiga pelo menos, talvez o segundo uso sim não se aplica a python também.