ゴールは、モジュール内で、私は、通訳からカスタムモジュールをインポートし、それを実行し、それを修正し、それをリロードし、変更を確認するために、再度それを実行したいと思い
を機能のリロード。
背景
私のpython 2.7を使用しています。私自身のモジュールを書く前に、Python 2.7でreload()
関数を大いに利用しました。
は私が呼ばれるフォルダを作成し、簡単な例では
- を自分の問題を再現:
__init__.py
とplotme.py
マイ__init__.py
ファイル:demo
内部demo
from .plotme import plot
マイplotme.pyファイルが含まれています
import matplotlib.pyplot as plt
import numpy as np
def plot():
x=np.linspace(0,np.pi*4,1000)
y=np.cos(x)
plt.plot(x,y,'b')
私はコマンドでそれを実行します。
>>> import demo
>>> demo.plot()
とそれだけで正常に動作します。
次に、プロットを青ではなく赤にしたいと決めます。私はplotme.pyで'b'
を'r'
に変更して保存します。次に、入力します。
>>> import(demo)
>>> demo.plot()
プロットはまだ赤ではなく青です。私が望むものではありません。代わりに私は試してみます:
>>> reload(demo)
>>> demo.plot()
また、色は更新されていません。
\__init__.py
の内部にリロードコマンドが必要であることがわかりました。
from .plotme import plot
reload(plot)
とI型:私はそれをアップデートしてみてください
>>> reload(demo)
私はエラーを取得する:
TypeError: reload() argument must be module
私が代わりにreload(.plotme)
をリロードしてみてください。同じエラー。 reload(plotme)
を試しても、エラーは発生しませんが、プロットの色は赤に更新されません。
これを修正するにはどうすればよいですか?
数行のコードを変更するたびにインタープリタを閉じて再起動する必要はありません。@MoinuddinQuadriの提案で
が、私の質問は、なぜあなたは 'プロット()'関数のパラメータとして色を追加していませんか?あなたが望むものはどこにも渡すことができるのですか? –
あなたの問題では、 'reload(...)'の後にモジュールを再度インポートする必要があります。 [python refresh/reload](https://stackoverflow.com/q/1517038/2063361) –
を読むこの簡単な例では、私はそれを行うことができます。しかし、私が 'plot()'関数を作図する代わりにテキストを書くようにすると、非常に根本的に異なるものがあります。 – john