]> granicus.if.org Git - python/commitdiff
The execfile() docs imply it acts on locals same as exec. But in truth
authorTim Peters <tim.peters@gmail.com>
Sun, 30 Sep 2001 06:32:59 +0000 (06:32 +0000)
committerTim Peters <tim.peters@gmail.com>
Sun, 30 Sep 2001 06:32:59 +0000 (06:32 +0000)
it acts more like assigning to keys in locals(), i.e. modifications to
function locals aren't reflected in the locals when execfile() returns.

Doc/lib/libfuncs.tex

index 8eccc828a616820737cc8dc344f72af206242860..ec7ce86eedb457a368be3fcf35994ac46e62cd69 100644 (file)
@@ -257,6 +257,13 @@ class instances are callable if they have a \method{__call__()} method.
   If both dictionaries are omitted, the expression is executed in the
   environment where \function{execfile()} is called.  The return value is
   \code{None}.
+
+  \strong{Warning:} The default \var{locals} act as described for function
+  \function{locals()} below:  modifications to the default \var{locals}
+  dictionary should not be attempted.  Pass an explicit \var{locals}
+  dictionary if you need to see effects of the code on \var{locals} after
+  function \function{execfile()} returns.  \function{execfile()} cannot
+  be used reliably to modify a function's locals.
 \end{funcdesc}
 
 \begin{funcdesc}{file}{filename\optional{, mode\optional{, bufsize}}}