PythonとJupyterを使用して、モジュールを再インポートする方法について説明します。これは、モジュールの.pyファイルに変更を加えた後、Pythonインタープリタを終了せずに新しいバージョンを試すために役立ちます。
モジュールの再インポート
Pythonでは、importlib
モジュールを使用して、既にインポートされたモジュールを再インポートすることができます。以下にその方法を示します。
import hoge
import importlib
importlib.reload(hoge)
このコードは、hoge
という名前のモジュールを再インポートします。
from ... import ...
の場合の再インポート
from ... import ...
を使用してモジュールをインポートした場合、再インポートする方法は少し複雑になります。以下にその方法を示します。
from hoge import fuga
import importlib
importlib.reload(hoge)
from hoge import fuga
このコードは、hoge
モジュールからfuga
を再インポートします。
注意点
モジュールを再インポートすると、モジュールのグローバル変数を含む辞書が保持されます。名前の再定義は古い定義を上書きするため、通常は問題になりませんが、新しいモジュールバージョンが古いバージョンで定義されていた名前を定義していない場合、古い定義は削除されません。
また、モジュールがクラスのインスタンスを生成している場合、そのクラスを定義するモジュールを再読み込みしても、インスタンスのメソッド定義には影響しません。これは派生クラスにも当てはまります。
以上がPythonとJupyterでモジュールを再インポートする方法についての説明です。この情報が皆さんの開発作業に役立つことを願っています。