Lukket . Dette spørgsmål skal være mere fokuseret . Det accepteres i øjeblikket ikke svar.

Kommentarer

  • En hook-metode er en konkret metode i en abstrakt klasse, der kan tilsidesættes af underklasser, men den har en standardadfærd i den abstrakte klasse.

Svar

Mit svar vedrører WordPress, der er skrevet i PHP, men dette er en generel udviklingsmekaniker, så det burde ikke “betyder ikke noget, på trods af at du sætter” python “i din spørgsmålstitel.

Et godt eksempel på brug af kroge, tilfældigvis i webudvikling, er WordPress “kroge .

De navngives passende, fordi de tillader en måde at” tilslutte sig “bestemte punkter i udførelsen af et program.

Så for wp_head er f.eks. en “handling”, der udsendes, når et WordPress-tema gengives, og det er på den del, hvor det gengiver den del, der er inden for <head> tags. Sig, at du vil skrive et plugin, der kræver et ekstra typografiark, script eller noget, der normalt kommer inden for disse tags. Du kan “tilslutte dig” denne handling ved at definere en funktion, der skal kaldes, når denne handling udsendes. Noget som:

add_action("wp_head", "your_function"); 

your_function() kunne være noget så simpelt som:

function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; } 

Når WordPress nu udsender denne handling ved at gøre noget som do_action("wp_head");, vil det se, at your_function() blev “tilsluttet” denne handling, så den kalder den funktion ( og sender den eventuelle argumenter, hvis den tager nogen som defineret i dokumentationen til en bestemt krog ).

Lang historie kort: Det giver dig mulighed for at tilføje yderligere funktionalitet på bestemte punkter i udførelsen af et program ved at “tilslutte” disse punkter, i de fleste tilfælde ved at tildele en funktion tilbagekald.

Svar

Afhængig af baggrunden for den person, der spørger nogle gange, kan svaret på dette spørgsmål være så simpelt, som kroge normalt er et andet ord for en begivenhedshåndterer, som Blaenk gav en glimrende forklaring på.

Der er også anvendelser af denne sætning, når du injicerer en begivenhed o r kode ind i en proces, der ellers ikke har begivenheder som f.eks. mol .

Kommentarer

  • Tak Bill, modermærker ligner et .NET-koncept, som er helt fremmed for mig, kan du venligst pege på noget pythonisk eller php eller noget mere generelt.
  • Desværre har jeg ikke ' Brug ikke disse to nok til at kræve ekspertise, men hvis jeg læser det korrekt, tror jeg stackoverflow.com/questions/156230/… er en lignende idé, der diskuteres, men modermærker kan tilslutte en kompileret samling. En miniportdriver er et andet sted, hvor krogsætningen bruges nogle gange. Mit pointer var mere, at " krog " terminologi kan bruges på en anden måde nogle gange, i ældre MS-teknologi alligevel, måske gør den anden brug gælder ikke også python.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *