ランダムなパッケージの返品を「入力」する方法[重複]

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.ModuleTypetypesます。

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

Pythonはダックタイピングを使用しているので、モジュールであると想定し、ユーザーに処理させない場合はお勧めします。本当にタイプを取得したい場合はtypes.ModuleType、khelwoodが言ったように使用してください。