私はPythonコードを開発しているときに、通常はインタプリタの特別な方法でテストします。私はimport some_module
にテストし、バグを発見し、バグを修正して保存してから、reload
の組み込み関数を使ってreload(some_module)
に戻り、もう一度テストします。'reload'の再帰的バージョン
しかし、some_module
に私はimport some_other_module
を持っている、とsome_module
をテストしながら、私はsome_other_module
のバグを発見し、それを修正したとします。今すぐreload(some_module)
を呼び出すと、再帰的にsome_other_module
を再インポートすることはありません。私は手動で依存関係を手動で再インポートする必要があります(reload(some_module.some_other_module)
、またはimport some_other_module; reload(some_other_module)
のようなものを実行するか、依存関係の全部を変更して再ロードする必要があるトラックを失った場合は、インタープリタ全体を再起動する必要があります)。
What'dは、より便利に、いくつかのrecursive_reload
機能があった場合であり、私はちょうどrecursive_reload(some_module)
を行うと、Pythonがsome_module
をリロードするだけでなく、再帰的にsome_module
輸入(およびそれらのモジュールの輸入の各モジュールごとこと、すべてのモジュールをリロードするだけでなく持つことができますなど)、私がsome_module
が依存する他のモジュールの古いバージョンを使用していないことを確かめることができます。
私はここに記述するrecursive_reload
関数のように動作するPythonに組み込まれたものはないと思いますが、そのようなことを一緒にハックする簡単な方法はありますか?
[Pythonで特定のモジュールに依存するモジュールのリストを検索する方法]の可能な重複(http://stackoverflow.com/questions/1827629/how-to-find-list-of-modules-特定のモジュールに依存しているPython) – jsbueno