ich zwei Python-Skripte haben, ein testclass.py:Python - Import-Modul bekommt globale Variablen
import numpy
zz = numpy
class Something(object):
def __init__(self):
self.xp = zz
und ein testscript.py:
from testclass import Something
x = Something()
print(x.xp)
ich testscript.py erwartet einen Fehler zu werfen weil ich dachte, dass testscript nur die Klasse Something
(mit seiner __init__
-Methode) importiert, und nicht die globale Variable zz
. Angesichts dieses Problems ist meine Frage, ob Python beim Import von einem Modul alles in der Moduldatei "ausführt"?
Ich mag die Idee, zufällige Sachen in einem Modul tief in Ihrem Projekt zu definieren. Den gleichen Namen zu behalten, aber einen anderen MRO, würde für Spaßzeiten sorgen. – spectras
Führt das mehrfache Ausführen von 'aus einem Import-Foo' die Wahrscheinlichkeit eines Fehlers auf? Oder bleibt die definierte Klasse während des Prozesses nach dem ersten Import gleich? –
@ZachGates: Das Modulobjekt wird in 'sys.modules' zwischengespeichert, nachdem es zuerst importiert wurde. – Blender