On 14 avr, 17:23, Janto Dreijer <[EMAIL PROTECTED]> wrote: > It seems eval is modifying the passed in locals/globals. This is > behaviour I did not expect and is really messing up my web.py app. > > Python 2.5.1 (r251:54863, Mar 7 2008, 04:10:12) > [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2 > Type "help", "copyright", "credits" or "license" for more information.>>> d = > dict(a=1) > >>> d.keys() > ['a'] > >>> eval("a", d) > 1 > >>> d.keys() > > ['a', '__builtins__'] > > That can't be right.
>From the documentation of eval[1] "If the globals dictionary is present and lacks '__builtins__', the current globals are copied into globals before expression is parsed." [1]http://docs.python.org/lib/built-in-funcs.html -- http://mail.python.org/mailman/listinfo/python-list