Answers:
我的答案与用PHP编写的WordPress有关,但这是一种通用的开发机制,因此尽管您在问题标题中加上了“ python”,也没关系。
巧合的是,在Web开发中使用钩子的一个很好的例子是WordPress的钩子。
它们的适当命名是因为它们允许“挂钩”程序执行的某些点。
因此,例如,wp_head是一个“动作”,当呈现WordPress主题时会发出该动作,它位于渲染<head>
标签内的零件的位置。假设您要编写一个插件,该插件需要其他样式表,脚本或通常在这些标记中包含的内容。您可以通过定义发出该动作时要调用的函数来“挂钩”该动作。就像是:
add_action('wp_head', 'your_function');
your_function()
可能很简单:
function your_function() {
echo '<link rel="stylesheet" type="text/css" href="lol.css" />';
}
现在,当WordPress通过执行类似的操作发出此动作时do_action('wp_head');
,它将看到your_function()
被“钩住”了该动作,因此它将调用该函数(并根据需要将任何参数传递给它,如文档中针对任何特定钩子所定义的那样)。)。
长话短说:它允许您通过“钩住”这些点,在大多数情况下,通过分配函数回调,在程序执行的特定点添加其他功能。
根据询问者的背景,有时这个问题的答案可能很简单,因为钩子通常是事件处理程序的另一个词,Blaenk对此做了很好的解释。
当您将事件或代码注入到没有其他事件(例如,痣)的过程中时,也会使用此短语。