さるへい備忘録

さるへいのやったことを綴っているブログです。基本的にテクノロジーの話題です。

Pythonの動的なモジュールとクラスのインポートからのインスタンス生成方法

Pythonでモジュールの動的なインポートからのインスタンス生成をしたので紹介します。 クラスだけ動的に生成はけっこうあるんですが、モジュールの動的インポートって結構レアみたいですね。 IDEとかでエラーが見えづらくなるので、そこは注意してくださいね。

実際のコード

# coding: utf-8

import importlib


module_path = 'importするモジュールのパス'
module = importlib.import_module(module_path) # モジュールのインポート
Klass = getattr(module, '生成したいインスタンスのクラス') # クラスの取得
Klass(hoge='fuga') # インスタンス生成

こう書いてしまうと結構簡単ですね。 なんかこう、素敵な仕組みを作れそうだったらガンガン作ってください。

ただ、前述の通りIDEでエラーは検知しづらい上に、コードが複雑になりやすいです。 十分に仕組みを検討の上で利用したほうが良いでしょう。

僕は使いましたが、正直将来バグを生みそうで怖いです。