2014-10-09 2 views
1

저는 모듈로 분리 된 상대적으로 큰 프로그램을 가지고 있습니다. 결과적으로 현재 제거하려고하는 다른 모듈의 함수 사이에 많은 겹침이 있습니다.함수는 괄호없이 인수로 전달됩니다.

내가 직면 한 문제 중 하나는 함수와 클래스를 다른 함수와 클래스에 인수로 전달해야한다는 것입니다.

저는 함수 이름을 문자열로 전달하고 exec()를 사용할 수 있다는 것을 알고 있습니다. 이론적으로는 표준화 된 키로 사전을 사용할 수도 있습니다. 그러나 다른 함수 인수에서 객체로 사용하여 함수를 호출하는 방법을 알고 싶습니다.

여러 함수를 알고 클래스는 괄호없는 함수를 인수로 사용하여 호출하므로 가능한 것이 확실합니다. 질문은 어떻게?

기본적인 예는 다음과 같습니다

def func1(some_function): 
    #call some_function here 

별도의 모듈 :

def func2(): 
    print("Success!") 

최종 결과가 될 것이다 : 나는 파이썬 3.4 사용하고

>>>func1(func2) 
'Success!' 

. 나는 또한 함수를 위해 작동 할 것이 클래스를 위해 작동한다고 가정하고있다.

+4

해보십시오 some_function() – Phillip

+0

와우 간단합니다 ... 꼭 사랑 귀도을 a을 대체 할 수있는 것입니다! – Scironic

답변

2
def func1(some_function): 
    #call some_function here 

단순히

def func1(some_function): 
    some_function() 

기능이 첫 번째 클래스는 파이썬에서 객체입니다된다.

+0

결국 이걸로 갔다. 감사! – Scironic

1

여기이 내가 거친으로, 한 당신이 어떤 이름을

def func1(): 
    return "ess" 
def func2(x): 
    return "succ" + x 

a = func1() 

print func2(a) 
관련 문제