Executing Commands and Evaluating Expressions
Python
has built-in functions and statements to facilitate this dynamic code
evaluation: eval(
expression,
[globals[,
locals]]
) is a built-in
function that evaluates a string, and
exec
expression,
[globals[,
locals]] is a statement (not a function:
no parentheses needed) that executes a string. The following
clarifies how it works:
>>> exec "print 'this expression was compiled on the fly' "
this expression was compiled on the fly
>>> exec "x = 3.14"
>>> eval("x + 1")
4.14Let’s pause for a moment and consider the implications of this code. You could pass a chunk of text to a running Python application, and it’s parsed, compiled, and executed on the fly. In Python, the interpreter is always available. Few languages offer this capability, and it’s what makes Python a good macro language.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access