2017-10-27 1 views
0

현재 스크립트에서 전달한 문자열에 따라 다른 스크립트에서 함수를 호출하고 싶습니다. 예를 들면 : Entry에서 다른 기능을 가지고 있는데 실행할 기능을 선택하고 싶습니다.파이썬은 변수의 문자열 값을 사용하여 다른 함수를 호출합니다.

import Entry 
def ma_exec(entry = 'longShort'): 
    if entry == 'longShort': 
     entryStrategy = Entry.longShort 
    entryStrategy(PositionTable, Signal) 

하지만이 방법으로 엔트리의 각기 다른 기능에 대해 많은 것을 작성해야합니다.

def ma_exec(entry = 'longShort'): 
    entryStrategy = Entry.entry 

이 ma_exec 함수에 전달하는 String 값에 따라 다른 함수를 실행할 수 있도록하려면 어떻게해야합니까? 위의 내용이 옳지 않다는 것을 알고 있습니다. 문제를 해결할 수있는 좋은 방법이 있습니까?

+2

함수에 전달 된 문자열을 함수 포인터와 관련시키기 위해 사전을 사용할 수 있습니까? 나는. 사전의 한 항목은 'longShort'를 키로 사용하고 Entry.longShort는 값으로 사용합니다. 어쩌면 각 문자열에 해당 함수 포인터가있을 것입니다. –

답변

0

이것은 아마도 Python의 eval() 함수에 대한 좋은 예입니다. 아래 코드를 시도하십시오 :

eval("Entry." + entry + "(PositionTable, Signal)") 

제 생각에는 파이썬과 같은 인터프리터 언어에서만이 작업을 수행 할 수 있습니다.

관련 문제