Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 함수 이름을 사용하여 문자열에서 모듈의 함수를 호출하는 방법은 무엇입니까?

<시간/>

파이썬의 객체는 인스턴스 변수와 메소드를 속성으로 가지고 있습니다. 파이썬에서 함수 이름을 가진 문자열에서 모듈의 함수를 호출하려면 먼저 이 속성을 가져와서 연결된 함수 객체를 호출할 수 있습니다. 예를 들어 모듈 foo가 있고 내용이 "bar"인 문자열이 있다고 가정해 보겠습니다. foo.bar()를 호출하는 가장 좋은 방법은 다음과 같습니다.

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

모듈 접두사 없이 전역 또는 로컬 네임스페이스에 함수가 있는 경우 globals()/locals()를 사용할 수도 있습니다. locals는 현재 로컬 기호 테이블이 있는 사전을 반환합니다. globals는 전역 기호 테이블이 있는 사전을 반환합니다.

예를 들어

>>> result = locals()["myfunction"]()
or
>>> result = globals()["myfunction"]()