Hallo, On 06/27/12 21:32, Sebastian Wiesner wrote:
Am 27. Juni 2012 21:25 schrieb felix conrads <felixconrads@googlemail.com>:
Für mein momentanes Projekt brauche ich dynamische Variablen (in einer Class) wie etwa:
for x in range(10): exec("_"+str(x)+" = ...")
so das ich, nach dem Bsp., 10 Variablen mit _0 = ... , _1 = ... kriege.
Verwende eine passende Datenstruktur, i.e. eine Liste oder ein Wörterbuch. Generierte und insbesondere durchnummierte Namen sind – bis auf sehr wenige Ausnahmen – *immer* ein Code-Smell.
Davon abgesehen, dass ich Sebastian hier recht gebe (*), gibt es auch noch die Builtin-Funktion setattr. Bezogen auf dein Beispiel: for i in xrange(10): setattr(MeineKlasse, "_%d" % i, ...) (*) mal abgesehen vom Widerspruch "bis auf sehr wenige Ausnahmen" vs. "immer" ;-) Viele Grüße Stefan