在所有示例中,a是:
>>> def a():
... print "aaaaaaa"
Run Code Online (Sandbox Code Playgroud)
我从另一段代码传递了一个函数对象,我需要执行该函数.
当我说"功能对象"时,我的意思是这样一个对象:
>>> type(a)
<type 'function'>
Run Code Online (Sandbox Code Playgroud)
看看这个:
>>> def function(f):
... print "start"
... f
... print "end"
>>> function(a)
start
end
Run Code Online (Sandbox Code Playgroud)
如果function()正在执行它传递的函数,则输出将aaaaaaa在其中间(从中返回a(),这是传递给它的函数)
那么如何在传递函数对象时执行函数呢?
(对不起,如果不是很清楚,我也会混淆自己......)
只需使用函数调用运算符 调用它():
f()
Run Code Online (Sandbox Code Playgroud)
这是您a在定义它之后调用的方式.全局名称a指向与本地名称相同的函数对象f,因此您需要执行相同的操作来调用它们.