Ich bin ein bisschen verwirrt durch die Tatsache, dass ich manchmal Funktionen auf bestimmte Arten verwenden kann, ohne tatsächlich zu erklären, dass ein Argument in ihm übergeben werden muss.Wie können bestimmte Methoden im Vorfeld argumentieren?
Hier sind einige Beispiele, ich weiß, dass sie unterschiedlich sind, wie sie interpretiert werden könnten, aber die allgemeine Theorie scheint mir ein bisschen seltsam.
Also normalerweise würden Sie das Argument mit der Deklaration von Variablen wie so passieren:
def usualexample(x):
print x;
return False;
somevarname = usualexample(5);
somevarname;
die in diesem Fall 5 auszudrucken würde und das Rück Falsch. Aber in einigen Fällen wie in diesem Beispiel mit JavaScript kann ich die Funktion verwenden, ohne irgendein Argument zu übergeben, obwohl das Programm ein Ereignis als ein Argument in die Funktion übergibt, ohne dass der Programmierer es tatsächlich wie folgt sagt.
var innermost = document.getElementsByTagName("section");
for (var p = 0; p < innermost.length;p++){
innermost[p].onclick = showinfo;
}
function showinfo(event){
Do something with the event argument
}
Ein weiteres ähnliches Beispiel in Python mit dem pyhook Modul wäre:
import pyHook;
def dosomething(event):
do something with the event argument.
manager = pyHook.HookManager();
manager.KeyDown = dosomething;
bei der innersten [p] .onclick und im Fall der manager.KeyDown Erklärungen, wie sie kennen Vorrücken, um die Funktion mit einem Argument zu versorgen?
Könnte jemand bitte die Logik dahinter erklären? Ich weiß, dass sie separate Deklarationen sind und einen völlig anderen Zweck erfüllen, aber ich muss nur wissen, wie diese Deklarationen im Voraus wissen, um die Funktion mit dem Argument zu versorgen, ohne sie im Voraus zu spezifizieren.