2

Pythonがモジュールをリロードする方法を学ぼうとしていますが、障害にぶつかっています。私が持っているとしましょう:

dir1\file1.py

from dir2.file2 import ClassOne
myObject = ClassOne()

dir1\dir2\file2.py

class ClassOne():
   def reload_module():
       reload(file2)

リロード呼び出しは、モジュール「file2」の検索に失敗します。

私の質問は、すべてを1つのファイルに保存することなく、これを適切に行うにはどうすればよいですか?

関連する質問:リロードが機能する場合、myObjectは新しいコードを使用しますか?

ありがとうございました

4

1 に答える 1

3
   def reload_module():
       import file2
       reload(file2)

ただし、これ自体は、以前のバージョンのfile2で保持されていたクラスからインスタンス化したオブジェクトのタイプを変更しません。Python Cookbook 2nd editionには、そのような偉業を達成する方法に関するレシピがあり、コードとディスカッションの両方で長すぎて複雑すぎて、ここで再現できません(Googleブック検索で読むことができるか、元の「生」に失敗する可能性があります)バージョン[私たちが行ったすべての機能強化の前に]、少なくとも、activestateクックブックのオンラインサイトにあるはずです)。

于 2009-07-03T19:17:59.613 に答える