mirror of https://github.com/python/cpython.git
Fix SF # 641111, Undocumented side effect of eval
Try to clear up confusion about the current globals being copied into a globals dict passed to eval(). This wording (more or less) was suggested in bug report. It should probably be made clearer. Backport candidate.
This commit is contained in:
parent
e9ce25e512
commit
046b8a7244
|
@ -314,7 +314,12 @@ class C:
|
|||
\var{expression} argument is parsed and evaluated as a Python
|
||||
expression (technically speaking, a condition list) using the
|
||||
\var{globals} and \var{locals} dictionaries as global and local name
|
||||
space. If the \var{locals} dictionary is omitted it defaults to
|
||||
space. If the \var{globals} dictionary is present and lacks
|
||||
'__builtins__', the current globals are copied into \var{globals} before
|
||||
\var{expression} is parsed. This means that \var{expression}
|
||||
normally has full access to the standard
|
||||
\refmodule[builtin]{__builtin__} module and restricted environments
|
||||
are propagated. If the \var{locals} dictionary is omitted it defaults to
|
||||
the \var{globals} dictionary. If both dictionaries are omitted, the
|
||||
expression is executed in the environment where \keyword{eval} is
|
||||
called. The return value is the result of the evaluated expression.
|
||||
|
|
Loading…
Reference in New Issue