2012-02-24 6 views
0

私は単純なモジュールと基本的なdefを持っています。私は(何も返さないように私のデフを変更した場合はモジュール名はexample315.pyあるとDEFがWindowsでNotepad ++とIDLEを使ってモジュールをコンパイルする

def right_justify(s) 
    print(s) 

である私はexample315をインポートしてから、(「Hello World」の)example315.right_justifyを呼び出すとき、これは正常に動作します

実際に私はそれを何らかの方法で変更することができます)、そして、機能を再度実行します(私のモジュールを保存した後)。

IDLEを終了してからやり直すのが短すぎると、うまく動作しないようです。

すべてのヘルプは、あなたが直面している問題は、IDLEがすでにインポートして、モジュールの内部表現を構築しているという事実である

答えて

2

、あなたはときにそれを再ロードする必要がありますあなたはそれを変更する。 Python tutorial on modulesから

効率上の理由から、各モジュールは一度だけ インタプリタセッションごとにインポートされます。したがって、モジュールを変更する場合は、 インタプリタを再起動する必要があります。つまり、対話的に をテストするモジュールが1つだけの場合は、を使用してください。リロード(modulename)。

1

を高く評価しました。ディスク上のファイルを編集しても、現在インポートされているメモリ常駐バージョンはIDLEに反映されません。あなたはと探している動作を取得することができる必要があります:

example315 = reload(example315)

そして、ここでいくつかのソースです:モジュールは一度セッションごとにロードされるPython Docs Source

関連する問題