[Python-de] globale variablen

Roland M. Kruggel rk.liste at bbf7.de
Mon Apr 24 13:47:28 CEST 2006


Hallo Liste,

ich dachte eigentlich ich hätte die Namespaces in Python verstanden, 
bin aber jetzt eines Besseren belehrt worden. 

Folgendes Beispiel:

tglob.py
---------
global_var = 'null'
...

p1.py
------
# -*- coding: iso-8859-1 -*
from tglob import *
def prog1():
    print 'p1:prog1 =', global_var

p2.py
-------
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*
from tglob import *
from p1 import *
def pp():
    global global_var    
    print 'soll null =', global_var
    prog1()
    global_var = 'new'
    print 'soll new =', global_var
    prog1()       # hier sollt auch 'new' erscheinen

pp()


Warum wird die globale_var nicht auch global geschrieben? Lesen 
funktioniert ja. Was mache ich da falsch? Wo ist mein Denkfehler?

Wenn ich global_var als Liste oder Dict definieren funktioniert das 
prima. Bitte um Hilfe, stehe hier ziemlich auf dem Schlauch. Google 
und python.org helfen hier auch nicht weiter.

-- 
cu

Roland Kruggel  mailto: rk.liste at bbf7.de
System: Intel, Debian etch, 2.6.15, KDE 3.5