質問

私はIPythonシェル内から作業しており、多くの場合、建設の下にある機能を含むスクリプトファイルをリロードする必要があります。

私のmain.pyの中に私は持っています:

def myreload():execfile( "main.py")execfile( "otherfile.py")

MyReload()を呼び出すと、同じiPythonセッションでexecfileが直接コマンドしている場合は、正常に動作します。

ただし、何らかの理由で、セッションが新鮮で、execfile( "main.py")と呼ばれる場合、myreload()は実際には他のfile.py内からの関数を使用できません。ただし、エラーはスローされません。

何か案は?

役に立ちましたか?

解決

関数は新しいスコープを作成します。 execfile() 現在の範囲でスクリプトを実行します。あなたがしていることはうまくいきません。

他のヒント

あなたが実際の正しい使用法を学ぼうとした場合 イピトン (つまり、インタラクティブモードで)、次のような魔法コマンドを使用する必要があります。

%run

%edit

これらの機能のヘルプを確認してください %run?. 。これにより、明示的な例が提供されます。

参照してください http://ipython.org/ipython-doc/stable/interactive/tutorial.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top