2012-06-21 147 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