python - 종류 - 파이썬:문자열 이름에서 함수를 호출




파이썬 함수 이름 호출 (2)

사전도 사용할 수 있습니다.

def install():
    print "In install"

methods = {'install': install}

method_name = 'install' # set by the command line options
if method_name in methods:
    methods[method_name]() # + argument list of course
else:
    raise Exception("Method %s not implemented" % method_name)

이 질문에는 이미 답변이 있습니다.

예를 들어, str 개체가 있습니다 : menu = 'install' . 이 문자열에서 install 메서드를 실행하고 싶습니다. 예를 들어 menu(some, arguments) 를 호출하면 install(some, arguments) 이 호출됩니다. 그것을 할 방법이 있습니까?


왜 우리는 eval ()을 사용하지 않을까요?

def install():
    print "In install"

새로운 방법

def installWithOptions(var1, var2):
    print "In install with options " + var1 + " " + var2

그리고 메소드를 아래와 같이 호출합니다.

method_name1 = 'install()'
method_name2 = 'installWithOptions("a","b")'
eval(method_name1)
eval(method_name2)

이것은 출력을 다음과 같이 나타냅니다.

In install
In install with options a b




python