On Mar 13, 2:58 am, mykhal <michal.bo...@gmail.com> wrote: > On Mar 13, 12:46 am, Terry Reedy <tjre...@udel.edu> wrote: > > > > > > > mykhal wrote: > > > hi, > > > importing from __future__ seems to have no effect when invoked in > > > local scope using exec statement. > > > I supposed > > > > g = {} > > > exec 'from __future__ import division' in g > > > eval('1/2', g) > > > > should yield 0.5, but it yields 0. > > > > is it OK, or a bug? > > > Please to read the fine manual. > > > tjr > > > ps. > > > " future statement must appear near the top of the module. The only > > lines that can appear before a future statement are: > > > the module docstring (if any), > > comments, > > blank lines, and > > other future statements. > > " > > as you can see, my future import statement is the very first code of > the virtual module, using g dictionary as its globals. i know, it can > be barely called module.. > if it produced SyntaxError in this exec/in usage as well, I'd have no > questions.
now I can see, that following yields the desired division result. g = {} exec "from __future__ import division; x=1/2" in g someone without huge knowledge of Python implementation details might expect my original code to produce the same. -- http://mail.python.org/mailman/listinfo/python-list