note that the return and yield statements cannot be used at the top level in

exec statements; people coming from certain other languages seem to be
confused by this on a regular basis
This commit is contained in:
Fred Drake 2005-09-07 05:17:07 +00:00
parent b3dfc0ae5e
commit b6e1c11004

View file

@ -873,7 +873,12 @@ 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.
executed. If it is a code object, it is simply executed. In all
cases, the code that's executed is expected to be be valid as file
input (see section~\ref{file-input}, ``File input''). Be aware that
the \keyword{return} and \keyword{yield} statements may not be used
outside of function definitions even within the context of code passed
to the \keyword{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 \keyword{in}