【globals()の使い方】文字列のクラス名からインスタンス生成する

こんな処理をするスクリプトを作っていました。

  • ログをダウンロードして
  • ログパースして
  • webサーバーにアップロード

このログをパースする処理なんだけど、ダウンロード/アップロードは変わらない。

ログの種類がある程度決まってるから、実行する時にログパースするクラスだけを変えて

パース処理できないかなーと考えてました。

 

つまり実行時に指定する文字列クラス名からインスタンス生成できないかなーと考えてました。

したら、ありました。 globals() を使うそうです。

 

【globals()】文字列からクラス生成する

 

globals() でimportしたクラスを全部把握してるんですね。

そこからクラス名を取得してインスタンス生成すると。

んーうまくいきそうだ。