Wie rufen Sie eine Funktion aus einer importierten Datei auf? zum Beispiel:
Test:
%Vor%Test2:
%Vor%Das gibt mir einen Namensfehler und sagt, dass meine Funktion nicht definiert ist. Ich habe es auch versucht:
%Vor%Und:
%Vor%Ich habe auch versucht, test2 nicht im Test zu importieren. Ich komme zu Python von C ++, also fürchte ich, etwas zu verpassen, was für erfahrene Python-Programmierer offensichtlich ist ...
Sie erstellen einen kreisförmigen Import. test.py
importiert test2.py
, das test.py
zu importieren versucht.
Tu das nicht. Bis zum Zeitpunkt test2
imports test
hat dieses Modul die Ausführung des gesamten Codes noch nicht abgeschlossen. Die Funktion ist noch nicht definiert:
test
wird kompiliert und ausgeführt, und ein leeres Modulobjekt wird zu sys.modules
hinzugefügt.
Die Zeile import test2
wird ausgeführt.
test2
wird kompiliert und ausgeführt, und ein leeres Modulobjekt wird zu sys.modules
hinzugefügt.
Die Zeile import test
wird ausgeführt.
test
ist bereits als Modul in sys.modules
vorhanden, dieses Objekt wird zurückgegeben und an den Namen test
gebunden. In einer nächsten Zeile wird test.aFunction()
ausgeführt. In test
existiert kein solcher Name. Eine Ausnahme wird ausgelöst.
Die Zeilen, die def aFunction()
definieren, werden niemals ausgeführt, da eine Ausnahme ausgelöst wurde.
Entfernen Sie die import test2
-Zeile und führen Sie test2.py
direkt aus, und das Importieren der Funktion funktioniert problemlos:
Tags und Links python python-2.7