Ich habe ein BIG Problem:
WUNSCH:
Ich habe eine globale Instanz, oder wollte ich so verwenden, damit immer als Parameter übergeben.
CODE:
base.py
Code: Alles auswählen
class GlobalClass:
def testWas(self, element):
print "Element: ", element
Code: Alles auswählen
from base import *
class ClassTest:
global gKlasse
def testGlobal(self, txt):
global gKlasse
gKlasse.testWas(txt)
if __name__ == '__main__':
gKlasse = GlobalClass()
print "Das ist direkt aufgerufen!"
ct = ClassTest()
ct.testGlobal("dirkt als Main aufgerufen")
else:
pass
# gKlasse = GlobalClass()
test.py
Code: Alles auswählen
from base2 import *
gKlasse = GlobalClass()
def testGlobalAgain():
ct = ClassTest()
ct.testGlobal("Das kommt von testGlobalAgain")
gKlasse.testWas("aus der Funktion testGlobal")
if __name__ == '__main__':
testGlobalAgain()
NameError: global name 'gKlasse' is not defined
================================
wie kann ich nur bei test.py eine Instanz erstellen, und die wird bei
der zu importierenden Module verwendet?
mit global klappt es nicht!
mit if -- else in base2.py funktioniert, wenn die Zeile unkommentiert, aber
das ist nicht meine Vorstellung, da die Instanz vom Caller/Importer abhängig erzeugt werden soll!
================================
Vielen Dank für Tips oder Hinweis!
Boostpy
Edit (Leonidas): Code in Python-Tags gesetzt.