[解決済み] Python でインタラクティブにモジュールを再インポートする
質問
できることは分かっているのですが、方法を思い出せません。
Pythonでモジュールを再インポートするにはどうすればよいですか? シナリオは次のとおりです。モジュールをインタラクティブにインポートして、それをいじくりまわしていたら、エラーに直面した。私は.pyファイルのエラーを修正し、私はpythonを終了せずに修正されたモジュールを再インポートしたいです。どうすればいいでしょうか?
どのように解決するのですか?
について Python 3.4+ :
import importlib
importlib.reload(nameOfModule)
について Python < 3.4 :
reload(my.module)
から Pythonドキュメント
<ブロッククオート以前にインポートしたモジュールを再ロードします。引数はモジュールオブジェクトでなければならないので、以前に正常にインポートされたものでなければなりません。これは、外部エディタを使ってモジュールのソースファイルを編集していて、Python インタープリタから離れることなく新しいバージョンを試したい場合に便利です。
この方法を使用する際の注意点を忘れてはいけません。
-
モジュールがリロードされたとき、その辞書(モジュールのグローバル変数を含む)は保持されます。名前の再定義は古い定義を上書きするので、一般的には問題ありませんが、古いバージョンで定義されていた名前を新しいバージョンのモジュールが定義しない場合、古い定義は削除されません。
-
あるモジュールが、他のモジュールから
from ... import ...
を呼び出すとreload()
を実行しても、他のモジュールからインポートされたオブジェクトは再定義されません - これを回避する一つの方法はfrom
ステートメントを使用する方法、もう一つはimport
と修飾名(module.*name*
) の代わりに -
モジュールがクラスのインスタンスを生成する場合、そのクラスを定義しているモジュールをリロードしても、インスタンスのメソッド定義には影響がなく、古いクラス定義が使用され続けます。派生クラスについても同様です。
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 億の相対的輸入
-
[解決済み] 他のPythonファイルをインポートするには?
-
[解決済み] 相対パスからモジュールをインポートする
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
PythonによるExcelファイルの一括操作の説明
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] Pythonモジュールをアンロード(再ロード)するにはどうしたらいいですか?