9

初心者の質問。iPythonシェルを起動し、run-commandを使用してスクリプトを実行していますが、すべてがうまく機能しています。ただし、スクリプトファイルを実行してから、インポートされたスクリプトファイルを編集してからもう一度実行しようとすると、古いインポートされたファイルが実行されます。だから私はPythonが速度のためにある種のキャッシュを節約すると推測しています。私は明確なコマンドなどを試しましたが、役に立ちませんでした。

基本的に私の問題はこれです。2つのファイル:function.pyとprogram.py。プログラムファイルは関数をインポートします。ただし、プログラムを実行してから関数を編集してからプログラムを再度実行すると、古い関数/編集されていないバージョンが実行されます。

4

4 に答える 4

9

iPythonまたは標準のPythonインタープリター内で、このreload()関数を使用して、インポートされたモジュールをリロードできます。

例:

In [1]: import foo
  # make some changes to the foo.py
In [2]: reload(foo)
于 2010-11-02T08:31:43.647 に答える
2

Python3.4以降の場合

import importlib
import foo

# Make changes on foo.py

importlib.reload(foo)
于 2021-04-28T19:54:20.433 に答える
1

Pythonのリロード関数を使用してモジュールコードを再コンパイルし、すべてのモジュールレベルのコードを再実行します。そうしないと、Pythonインタープリターは古いコンパイル済みバイトコード(.pyc)を使用します。例えば:

In [1]: import script

In [2]: run script
...

In [3]: reload(script)
Out[3]: <module 'script' from 'script.pyc'>
...
In [4]: run script
于 2010-11-02T08:47:30.940 に答える
0

ここでは、ファイルは毎回ディスクから再読み取りされると述べられていますが、エラーがあなたの側にないことを確認しますか?

于 2010-11-02T08:25:55.693 に答える