2016-08-13 58 views
0
def example(function): 
    if input() == "Hello there!": 
     #at this point I want to call the function entered in the tuples 

我的意思的例子:Python函數在功能

def example(function): 
    if input() == "Hello there!": 
     #do the function here 

def Printer(What_to_print): 
    print(What_to_print + "Just an example") 


example(Printer) 

這是possibe,並在這樣做有缺憾?

+0

您是否將函數作爲參數傳遞給另一個函數?是的,這是可能的,而且很常見。 – bereal

+0

是的,這完全有可能。 – Harrison

+0

'在這一點上,我想調用函數' - 那麼做那個? –

回答

0

是的。有可能的。

def example(function): 
    if input() == "Hello there!": 
     function("Hello there!") # invoke it! 

其實你可以通過def功能和lambda功能參數和()語法調用它們。

+0

不好意思問這個問題(我對編程真的很陌生),但是你能否給我一個你想要調用它的例子? –

+0

@AndreasSandberg通過調用,我的意思是調用函數。用你的話來說,_doing_的功能。 –

+0

我可能聽起來真的很愚蠢,但我不知道要添加什麼後;當我刪除它時,'example'會打印出我想要的內容,而不需要我做任何事情,而且當我輸入Hello時!我只是得到很多錯誤。 –

0

在Python中,函數是像任何其他常見類型的對象,如int s和str s。因此,接收另一個函數作爲參數的函數沒有問題。

>>> def pr(): print ('yay') 

>>> def func(f): f() 

>>> isinstance(pr, object) 
True 
>>> isinstance(int, object) 
True 
>>> func(pr) 
yay 
>>> 
0
def example(function, what_to_print): 
    if raw_input() == "Hello there!": 
     function(what_to_print) 

def printer(what_to_print): 
    print(what_to_print + "Just an example") 

example(printer, "")