| Python Language Reference Manual by Guido van Rossum and Fred L. Drake, Jr. Paperback (6"x9"), 120 pages ISBN 0954161785 RRP £12.95 ($19.95) Sales of this book support the Python Software Foundation! Get a printed copy>>> |
6.14 The exec statement
exec_stmt "exec"expression-
["in"
expression[","expression]]
This statement supports dynamic execution of Python code. The first
expression should evaluate to either a string, an open file object, or
a code object. If it is a string, the string is parsed as a suite of
Python statements which is then executed (unless a syntax error
occurs). If it is an open file, the file is parsed until EOF and
executed. If it is a code object, it is simply executed. In all
cases, the code that's executed is expected to be valid as file
input (see section 8.2, "File input"). Be aware that
the return and yield statements may not be used
outside of function definitions even within the context of code passed
to the exec statement.
In all cases, if the optional parts are omitted, the code is executed
in the current scope. If only the first expression after in
is specified, it should be a dictionary, which will be used for both
the global and the local variables. If two expressions are given,
they are used for the global and local variables, respectively.
If provided, locals can be any mapping object. (Changed in Python version 2.4)
As a side effect, an implementation may insert additional keys into
the dictionaries given besides those corresponding to variable names
set by the executed code. For example, the current implementation
may add a reference to the dictionary of the built-in module
‘__builtin__’ under the key __builtins__ (!).
Programmer's hints:
dynamic evaluation of expressions is supported by the built-in
function eval(). The built-in functions
globals() and locals() return the current global
and local dictionary, respectively, which may be useful to pass around
for use by exec.
| ISBN 0954161785 | Python Language Reference Manual | See the print edition |