eval und lambda

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alain
User
Beiträge: 2
Registriert: Sonntag 30. September 2012, 18:19

Hallo,

ich bin über eine Sache gestolpert, von der ich nicht weiß, warum sich Python so verhält:

Code: Alles auswählen

>>> z=lambda x: x>0 and x or  0.; sum([z(i) for i in [-100,0,100,200]])
300.0
>>> eval("z=lambda x: x>0 and x or  0.; sum([z(i) for i in [-100,0,100,200]])")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    z=lambda x: x>0 and x or  0.; sum([z(i) for i in [-100,0,100,200]])
     ^
SyntaxError: invalid syntax
Ich hätte erwartet, dass sich beide Befehle gleich verhalten. Wieso ist das nicht der Fall?
al
Zuletzt geändert von Anonymous am Montag 1. Oktober 2012, 07:57, insgesamt 2-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Ich glaube du verwechselst eval und exec
alain
User
Beiträge: 2
Registriert: Sonntag 30. September 2012, 18:19

sparrow hat geschrieben:Ich glaube du verwechselst eval und exec
ahhh - klar! danke
Antworten