En Sat, 14 Jun 2008 05:31:35 -0300, TheSaint <[EMAIL PROTECTED]> escribió:
> It seems to be strange that give me syntax error inside an eval statement. > I'm looking at it carefully but I can't see any flaw. > > Here it's part of the code: > > for nn in stn_items: > value= eval('cp.%s' %nn) > if value and (nn in 'log, trash, multithread, verbose, download'): > cfl[wchkey][nn]= chkbool(value) > continue > if value: > cnfg= 'cfl[wchkey][nn]= _%s(value)' %nn > eval(cnfg) > > And the output on pdb: > > (Pdb) p cnfg > 'cfl[wchkey][nn]=_append(value)' > (Pdb) p cfl[wchkey][nn] > False > (Pdb) eval('cfl[wchkey][nn]= _append(value)') > *** SyntaxError: invalid syntax (<string>, line 1) Others have already remarked that your general approach is bad ("don't use eval!", in short). But none has pointed out the actual error in your code: eval can accept only an *expression*, not a statement. eval("x=1") gives the same SyntaxError. (`exec` is the way to execute statements, but the same caveats apply, so: don't use exec either, use getattr/setattr instead) -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list