2017-01-03 1 views
2

내가 학교에서 일하고있는 프로젝트의 일부로, 기본 파일 (SM.py)과 "mods"라는 폴더가 있는데 내 프로그램으로 가져온 다른 .py 파일을 넣을 수 있고 물건을 추가 할 수 있습니다. (오랜 시간이 걸리므로 실제로 무엇을하는지 설명하기는 싫지만 관련성이있는 경우 설명 할 수 있습니다.)Python - 가져온 파일에서 상위 파일에있는 함수 호출

메인 파일 (SM.py)에서 call_trigger (trigger)라는 함수를 호출하는 mod 파일 중 하나에서 타이머를 실행하고 싶습니다. 문제는 원형 파일을 생성하기 때문에 mod 파일에 주 파일을 가져올 수 없다는 것입니다. 그래서 기본적으로 무엇을하려고하는지 :

a.py는 b.py를 가져오고 a.py는 foo() 함수를 가지고 있습니다. 먼저 a.py를 가져 오지 않고 b.py에서 foo()를 호출하려고합니다.

# Some code from your top level 
def foo(): 
    print("Foobar") 

def bar(param): 
    print("param=%s" % param) 

# Code in the module 
def baz(callback): 
    print("Do something") 
    callback() 

baz(foo) # notice that there are no() after foo 
baz(lambda: bar(23)) # lambda creates an anonymous function, 
        # which is called by baz. The call within 
        # baz is the point when bar(23) will be executed. 

당신은 매개 변수로 호출 가능한 개체를 전달할 수 있습니다

는 다행스럽게도 필자는 당신이 더 explaination 필요하면 내가 그것을 제공 할 수 있습니다 :

답변

0

는이 작업을 달성하기 위해 콜백을 사용할 수 있습니다, 물론 자신을 설명 파이썬 함수에 저장하고 나중에이 매개 변수를 호출 할 수 있습니다.

관련 문제