Wenn ich Python-Code bin entwickeln, ich teste es in der Regel in einer Ad-hoc-Weise im Interpreter. Ich werde import some_module
, testen, einen Fehler finden, beheben den Fehler und speichern, und verwenden Sie dann die eingebaute in reload
Funktion reload(some_module)
und erneut testen.rekursive Version von 'Reload'
jedoch annehmen, dass in some_module
Ich habe import some_other_module
, und während some_module
Testen entdecke ich einen Fehler in some_other_module
und beheben. Jetzt ruft reload(some_module)
nicht rekursiv some_other_module
erneut importieren. Ich muss die Abhängigkeit entweder manuell neu importieren (indem ich etwas wie reload(some_module.some_other_module)
oder import some_other_module; reload(some_other_module)
mache, oder, wenn ich eine ganze Reihe von Abhängigkeiten geändert habe und nicht mehr nachgespielt habe, was ich neu laden muss, muss ich den gesamten Interpreter neu starten.
Was hat sein bequemer ist, wenn es einige recursive_reload
Funktion waren und ich konnte nur tun recursive_reload(some_module)
und haben Python nicht nur some_module
neu zu laden, sondern auch neu zu laden rekursiv jedes Moduls, some_module
Importe (und jedes Modul, dass jedes dieser Module Importe, und so weiter), so dass ich konnte sicher sein, dass ich nicht eine alte Version von einem der anderen Module verwendet, auf denen some_module
abhängt.
Ich glaube nicht, dass Python etwas eingebaut hat, das sich wie die recursive_reload
-Funktion verhält, die ich hier beschreibe, aber gibt es eine einfache Möglichkeit, so etwas zusammen zu hacken?
möglich Duplikat [wie Liste der Module zu finden, die in Python auf einen bestimmten Modul abhängen] (http://stackoverflow.com/questions/1827629/how-to-find-list-of-modules- which-depend-on-a-specific-Modul-in-Python) – jsbueno