【发布时间】:2017-03-11 20:41:05
【问题描述】:
我有点困惑,有时我可以以某些方式使用函数,而实际上没有声明必须在其中传递参数。
这里有一些例子,我知道它们在解释方式上是不同的,但总体理论对我来说似乎有点奇怪。
所以通常你会像这样通过变量声明传递参数:
def usualexample(x):
print x;
return False;
somevarname = usualexample(5);
somevarname;
在这种情况下会打印出 5 并返回 False。 但是在某些情况下,例如在这个带有 JavaScript 的示例中,我可以在不传递任何参数的情况下使用函数,即使程序知道将事件作为参数传递给函数,而程序员实际上并没有告诉它喜欢以下内容。
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
}
Python 中使用 pyhook 模块的另一个类似示例是:
import pyHook;
def dosomething(event):
do something with the event argument.
manager = pyHook.HookManager();
manager.KeyDown = dosomething;
在innermost[p].onclick 和manager.KeyDown 声明的情况下,他们如何提前知道为函数提供参数?
谁能解释一下这背后的逻辑?我知道它们是单独的声明并满足完全不同的目的,但我只需要知道这些声明是如何提前知道为函数提供参数的,而无需事先实际指定它。
【问题讨论】:
标签: javascript python computer-science