Problem: Globale Variable in Funktion/Klasse definieren
Verfasst: Donnerstag 16. Februar 2012, 22:40
Hallo allseits,
ich hab ein kleines Problem. Es betrifft die Definition von globalen Variablen aus einer Funktion/Klasse heraus.
Auf diese Weise funktioniert die Definition wie in vielen Tutorien beschrieben:
und ergibt
Möchte ich jedoch die Definition der Variablen von einer bestehenden Liste ableiten, wie zum Beispiel hier:
bekomme ich immer die Antwort, dass die Variable a nicht definiert sei.
Ich habe oben die exec-Zeilen zusätzlich printen lassen und sie ergeben genau den Code den ich ausführen möchte (global a, global b, a=3 und b=6). Ich verstehe nicht, warum der über Exec ausgeführte Code nicht die Funktion eines direkt eingegebenen Codes erfüllt.
Für Hilfe wäre ich sehr dankbar.
Grüße
Ben
ich hab ein kleines Problem. Es betrifft die Definition von globalen Variablen aus einer Funktion/Klasse heraus.
Auf diese Weise funktioniert die Definition wie in vielen Tutorien beschrieben:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
def test():
global a
a=5
test()
print "a="+str(a)
Code: Alles auswählen
a=5
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
def test(liste):
for i in range(0,len(liste),1):
liste[i]=liste[i].split(',')
exec("global "+liste[i][0])
print "global "+liste[i][0]
exec(liste[i][0]+"="+liste[i][1])
print liste[i][0]+"="+liste[i][1]
liste=['a,3','b,6']
test(liste)
print a
Code: Alles auswählen
global a
a=3
global b
b=6
Traceback (most recent call last):
File "./test2.py", line 14, in <module>
print a
NameError: name 'a' is not defined
Für Hilfe wäre ich sehr dankbar.
Grüße
Ben