2017-09-28 1 views
0

Ich habe drei Python-Dateien mit dem Namen: Main.py, code1.py, code2.py. "Main.py" ruft die anderen beiden mit den Anweisungen "import code1" und "import code2" auf. code1 und code2 empfangen einige numerische Arrays und geben einige andere numerische Arrays unter Verwendung von function1 bzw. function2 zurück.Müssen Python-Module vor dem Import ausgeführt werden?

Hier ist mein Problem: wenn ich main.py öffnen und führen Sie es, heißt es:

Dann nach dem Laufen code1.py und code2.py, es "name function1 ist nicht definiert" funktioniert. Nachdem ich fertig war, habe ich Python beendet. Am nächsten Tag, wenn ich main.py öffne und starte, das gleiche Problem noch einmal.

Frage: Warum muss ich code1.py und code2.py jedes Mal ausführen, bevor main.py ausgeführt wird? Gibt es eine Möglichkeit, dieses Problem zu lösen?

Danke!

Hinweis: Ich verwende Python 3.6.1 auf Anaconda 4.4.0 Spyder mit 3.1.4

+0

Wie führen Sie Ihren Python-Code aus? – syntonym

+0

Verwenden Sie den grünen Run-Button am Spyder. Ich habe meine Frage aktualisiert. – JohnPython

Antwort

2

Auf Ihrer code1.py und code2.py Dateien, sollten Sie eine Variable enthalten namens __all__ = ['function1'] und __all__ = ['function2'] sind. Diese Liste enthält die Namen der Funktionen, die importiert werden sollen. Wenn Sie in Main.py importieren, verwenden Sie: from code1 import * und dasselbe für code2.py und sollte gut funktionieren.

+0

Vielen Dank! Ich bin sehr neu in der Programmierung in Python. Jetzt verstehe ich, dass ich "from module_name import *" verwenden muss. – JohnPython

+0

Alternativ verwenden Sie 'von Modulname Importfunktionsname', so dass Sie nur die aktuelle Datei betrachten müssen, um festzustellen, woher' Funktionsname' stammt. – syntonym

+0

Guter Tipp Synonym, danke! – JohnPython

Verwandte Themen