importieren habe ich ein Projekt mit einer Dateistruktur wie dieseein zweites Mal innerhalb einer Klasse Instanz
main.py
input/
__init__.py
foo.py
Innenhaupt eine Instanz davon mit diesen Zeilen I Foo importieren und erstellen:
main. py
from input.foo import Foo
foo = Foo()
Innen foo.py muss ich Threading verwenden, damit ich importieren und erstellen sie einen Thread in init.
foo.py
from threading import Thread
class Foo
def __init__(self):
newThread = Thread()
Später habe ich beschlossen, es wäre nützlich, einen Thread in main.py zu haben, so mit from threading import Thread
ich es auch dort importiert. Bis jetzt hat alles so funktioniert wie es sollte. Ich dachte, es sei überflüssig, während der Ausführung zweimal Thread
zu importieren, also entfernte ich die oberste Zeile von foo.py und führte es erneut aus. Dieses Mal bekam ich NameError: global name 'Thread' is not defined
, als das Programm die Linie newThread = Thread()
erreichte.
Gibt es einen Weg für mich, einen Import in main.py und nicht importieren Sie es erneut in foo.py? Es fühlt sich falsch an, dieselbe Klasse zweimal in einem Programm zu importieren.
"Es fühlt sich falsch an, die gleiche Klasse zweimal in einem Programm zu importieren." - Warum? Es ist völlig normal. Es wird nicht zu doppelten Initialisierungsproblemen führen, und Python selbst macht es mehrmals, bevor der Code überhaupt ausgeführt wird. – user2357112
Technisch ja, Sie könnten "Thread" an den Initialisierer von 'Foo' übergeben, aber es ist wirklich nicht falsch, das Modul einmal pro Datei zu importieren. – L3viathan