mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
Kill execfile(), use exec() instead
This commit is contained in:
parent
41eaedd361
commit
016880229a
98 changed files with 179 additions and 341 deletions
|
@ -81,7 +81,7 @@ There are situations in which \code{from module import *} is just fine:
|
|||
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Unadorned \function{exec}, \function{execfile} and friends}
|
||||
\subsection{Unadorned \function{exec} and friends}
|
||||
|
||||
The word ``unadorned'' refers to the use without an explicit dictionary,
|
||||
in which case those constructs evaluate code in the {\em current} environment.
|
||||
|
@ -97,7 +97,7 @@ Bad examples:
|
|||
>>> def func(s, **kw):
|
||||
>>> for var, val in kw.items():
|
||||
>>> exec("s.%s=val" % var) # invalid!
|
||||
>>> execfile("handler.py")
|
||||
>>> exec(open("handler.py").read())
|
||||
>>> handle()
|
||||
\end{verbatim}
|
||||
|
||||
|
@ -111,7 +111,7 @@ Good examples:
|
|||
>>> for var, val in kw.items():
|
||||
>>> setattr(s, var, val)
|
||||
>>> d={}
|
||||
>>> execfile("handle.py", d, d)
|
||||
>>> exec(open("handler.py").read(), d, d)
|
||||
>>> handle = d['handle']
|
||||
>>> handle()
|
||||
\end{verbatim}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue