モジュールを再インポートするにはどうすればよいですか? .py ファイルに変更を加えた後にモジュールを再インポートしたいです。
ベストアンサー1
Python 3.4+の場合:
import importlib
importlib.reload(nameOfModule)
Python < 3.4の場合:
reload(my.module)
以前にインポートしたモジュールを再ロードします。引数はモジュール オブジェクトである必要があるため、以前に正常にインポートされている必要があります。これは、外部エディターを使用してモジュール ソース ファイルを編集し、Python インタープリターを終了せずに新しいバージョンを試したい場合に便利です。
この方法を使用する際の注意事項を忘れないでください:
モジュールが再ロードされると、その辞書 (モジュールのグローバル変数を含む) は保持されます。名前の再定義は古い定義を上書きするため、通常は問題にはなりませんが、モジュールの新しいバージョンが古いバージョンで定義された名前を定義していない場合、古い定義は削除されません。
モジュールが を使用して別のモジュールからオブジェクトをインポートする場合
from ... import ...
、reload()
他のモジュールを呼び出しても、そこからインポートされたオブジェクトは再定義されません。この問題を回避する 1 つの方法は、ステートメントを再実行することです。もう 1 つの方法は、代わりにと修飾名 ( )from
を使用することです。import
module.*name*
モジュールがクラスのインスタンスをインスタンス化する場合、クラスを定義するモジュールを再ロードしてもインスタンスのメソッド定義には影響しません。古いクラス定義が引き続き使用されます。派生クラスについても同様です。