Python 基本メモ import_moduleでクラスを動的import

Pythonで書いた1回限りの処理用の使い捨てスクリプトをスケジュールで定期的に処理する必要があって、調べてましたが、まだ初心者で、ダブルアンダースコアの変数の使い方がよくわからず、
意図した動作が出来ないので、使うスクリプトをクラスにしましたところ、うまく動きめでたく解決しました。
昔、Javaのリフレクションを使って同様のことをしてましたが、長いコードが必要だったのが、短く済みすっきりと出来ました。

< コード例 >

コマンドライン引数で指定した自作モジュールのインポート



import importlib

# クラス名引数 #
args = sys.argv
module_name = ""
if len(args) != 2:
    print("No argument unable to continue!!")
    sys.exit()
    #module_name = "MatsumotoClass" 
else:
    module_name = args[1] + "Class"

sttm = int(time.time())

## 動的モジュール読込 ##
mod = importlib.import_module(module_name)
## インスタンス化 ##
md = mod.ExecClass()

コメントを残す