2

私はipythonシェルの内部から作業しており、多くの場合、構築中の関数を含むスクリプトファイルをリロードする必要があります。

私のmain.pyの中には:

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

同じipythonセッションでexecfileコマンドを直接実行している場合は、myreload()の呼び出しは正常に機能します。

ただし、何らかの理由で、セッションが新しく、execfile( "main.py")を呼び出しただけの場合、myreload()は実際にはotherfile.py内の関数を使用可能にしません。ただし、エラーはスローされません。

何か案は?

4

2 に答える 2

2

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

于 2010-08-22T05:56:32.190 に答える
2

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

%run

%edit

でこれらの関数のヘルプを確認してください%run?。これは明確な例を提供します。

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

于 2013-05-23T16:30:34.157 に答える