Ich habe ein Problem beim erneuten Laden von Modulen, die importiert und in einem anderen Modul verwendet werden. Aus Gründen der Klarheit, lassen Sie uns das Beispiel überlegen, wo ich zwei Module:So laden Sie ein Modul, das in andere Module importiert wurde
Erstes Modul: operation.py
def f(x,y):
return x+y
zweite Modul: test_operation.py
import operation
x=3
y=4
z= operation.f(x,y)
print z
Wenn ich an den Interpreter gehen und schreiben:
import test_operation
Ich werde 4 gedruckt (z = 4). Wenn ich die Funktion f im ersten Modul operation.py ändern zu sein:
def f(x,y):
return x+y+1
und dann schreibe ich im Interpreter reload (test_operation), werde ich noch 4 statt 5 gedruckt werden Es scheint also, dass es lädt das Modul test_operation.py neu, aber das Modul operation.py, das in test_operation.py importiert wird, wird nicht neu geladen.
Wie löse ich ein solches Problem? Und wie stelle ich im Allgemeinen sicher, dass alle importierten Module in meinem Code jedes Mal neu importiert (oder neu geladen) werden, wenn sie geändert werden?
Verwenden Sie 'reload (Operation)', dann 'reload (test_operation)'. – Uriel
Sie laden das bereits importierte Modul auf Speicher nach Ihrer Änderung in operation.py nicht das neue mit Ihrer Bearbeitung –
Ich verstehe, dass ich Module einzeln nacheinander von Hand laden kann, aber gibt es eine automatische Methode, die ein Modul neu laden und all seine importierten Module, und geht so rekursiv? Gibt es ein tiefes Nachladen (wie es eine Kopie und eine tiefe Kopie gibt)? –