무작위 패키지 반품을 "입력"하는 방법 [중복]

Nov 24 2020

작업중인 애플리케이션에서 플러그인을 허용하는 API를 구축하고 있습니다. importlib.import_module플러그인을 가져 오는 데 사용 하고 있습니다. 분명히 나는 ​​미리 어떤 모듈을 가져올 지 전혀 모른다. 가져 오기를 수행하는 데 사용하는 메서드에서 반환 유형을 일반 모듈로 식별하는 방법이 있습니까?

def import_plugin(plugin_name: str) -> <Some generic module type>:
    # conditional tests here...
    return importlib.import_module("plugins.{}".format(plugin_name))

답변

1 khelwood Nov 24 2020 at 19:52

모듈의 종류는 다음과 같이 주어진다 types.ModuleType에서 types모듈.

import types
type(types) is types.ModuleType
# => True
ericl16384 Nov 24 2020 at 19:45

파이썬은 덕 타이핑을 사용 하므로 모듈이라고 가정하고 사용자가 처리하도록 허용하지 않는 것이 좋습니다. 정말로 유형을 얻고 싶다면 types.ModuleTypekhelwood가 말한 것처럼 사용하십시오 .