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

무슨 뜻인지의 예 :파이썬 기능

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 호출하는 것은 함수를 호출하는 것입니다. 말하자면, 함수를 _ 실행하는 것. –

+0

내가 지금 probaly 정말 바보 같은 소리지만, 나는 후에 무엇을 추가 해야할지 모르겠다; 내가 그것을 지울 때'example'은 내가 무엇을하지 않고 인쇄하기를 원하는 것을 인쇄하고 내가 거기에 입력 할 때! 나는 많은 오류가 발생합니다. –

0

파이썬에서 함수는 intstr과 같이 일반적인 유형과 같은 객체입니다. 따라서 다른 함수를 인수로받는 함수에는 아무런 문제가 없습니다.

>>> 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, "")