2012-06-21 102 views
0

在所有的例子中,是a从功能对象执行的功能

>>> def a(): 
...  print "aaaaaaa" 

我已经通过从另一段代码的功能对象,我需要执行该功能。

当我说“函数对象”,我的意思是一个对象是这样的:

>>> type(a) 
<type 'function'> 

看一看这样的:

>>> def function(f): 
...  print "start" 
...  f 
...  print "end" 

>>> function(a) 
start 
end 

如果function()正在执行它所传递的功能,输出将有一个aaaaaaa在它的中间(从a(),这是传递给它的功能返回)

那么我怎么能ex传递函数对象时执行一个函数?

(很抱歉,如果这还不是很清楚,我自己混乱以及...)

+0

考虑在你的问题中使用有效的Python代码。 – Marcin

+0

@Martin,对不起,我在IDLE shell中完成了所有这些。 – ACarter

+0

您的更新代码现在看起来像shell,但它仍然不是有效的python。虽然阅读起来可能稍微容易一点,但要将其粘贴到解释器或文件中以测试是比较困难的。 – Marcin

回答

9

只使用称它为function call operator()

f() 

你这是怎么在定义它之后可能会调用a。全球名称a指向与本地名称f相同的功能对象,因此您需要执行相同的操作才能调用它们。

+0

谢谢。杜,那很简单... – ACarter