파이썬

[python] 이름(문자열)을 사용하여 모듈의 함수 호출

zooheon 2022. 8. 28. 20:44
반응형

함수 이름이 있는 문자열을 사용하여 함수를 어떻게 호출합니까? 예를 들어:

import foo
func_name = "bar"
call(foo, func_name)  # calls foo.bar()

 

foo다음 과 같은 방법 이 있는 모듈 이 제공됩니다 bar.

import foo
bar = getattr(foo, 'bar')
result = bar()

getattr클래스 인스턴스 바인딩 메서드, 모듈 수준 메서드, 클래스 메서드에서 유사하게 사용할 수 있습니다. 목록은 계속됩니다.

 

  • locals()현재 로컬 기호 테이블과 함께 사전을 반환하는 , 사용 :

    locals()["myfunction"]()
    
  • globals()전역 기호 테이블이 있는 사전을 반환하는 , 사용 :

    globals()["myfunction"]()
    

 

Patrick의 솔루션 을 기반으로 모듈을 동적으로 가져오려면 다음을 사용하여 가져옵니다.

module = __import__('foo')
func = getattr(module, 'bar')
func()

 

반응형