Pythonの動的なモジュールとクラスのインポートからのインスタンス生成方法
Pythonでモジュールの動的なインポートからのインスタンス生成をしたので紹介します。 クラスだけ動的に生成はけっこうあるんですが、モジュールの動的インポートって結構レアみたいですね。 IDEとかでエラーが見えづらくなるので、そこは注意してくださいね。
実際のコード
# coding: utf-8 import importlib module_path = 'importするモジュールのパス' module = importlib.import_module(module_path) # モジュールのインポート Klass = getattr(module, '生成したいインスタンスのクラス') # クラスの取得 Klass(hoge='fuga') # インスタンス生成
こう書いてしまうと結構簡単ですね。 なんかこう、素敵な仕組みを作れそうだったらガンガン作ってください。
ただ、前述の通りIDEでエラーは検知しづらい上に、コードが複雑になりやすいです。 十分に仕組みを検討の上で利用したほうが良いでしょう。
僕は使いましたが、正直将来バグを生みそうで怖いです。