Die Ausführung von Zeichenfolgen in Python
›eval‹ kann nur Ausdrücke auswerten.
Mit ›exec‹ können Anweisungsfolgen ausgeführt werden, die als Zeichenfolge vorliegen.
- Protokoll
x = 'print( 2 ); print( 3 );'
exec( x )
2
3
Eine Möglichkeit zur Realisierung von Wiederholungen.
- Protokoll
x = "print( end='2' ); "
y = 5 * x
y
"print( end='2' ); print( end='2' ); print( end='2' ); print( end='2' ); print( end='2' ); "
exec( x ); print()
2
exec( y ); print()
22222
exec( 5 * x ); print()
22222
Variablendefinition erfolgen für das umgebende Modul.
- Protokoll
x = 'a = 5'
exec( x )
a
5
Falls ›exec‹ Innerhalb eines lambda-Ausdrucks aufgerufen wird, gibt es jedoch einen eigenen internen Gültigkeitsbereich des exec-Aufrufs, der sich innerhalb des Gültigkeitsbereichs etwaiger Parameter der lambda-Funktion befindet.