こんな処理をするスクリプトを作っていました。
- ログをダウンロードして
- ログパースして
- webサーバーにアップロード
このログをパースする処理なんだけど、ダウンロード/アップロードは変わらない。
ログの種類がある程度決まってるから、実行する時にログパースするクラスだけを変えて
パース処理できないかなーと考えてました。
つまり実行時に指定する文字列クラス名からインスタンス生成できないかなーと考えてました。
したら、ありました。 globals() を使うそうです。
globals() でimportしたクラスを全部把握してるんですね。
そこからクラス名を取得してインスタンス生成すると。
んーうまくいきそうだ。