from future import scope problem

mykhal michal.bozon at gmail.com
Thu Mar 12 22:20:37 EDT 2009


On Mar 13, 2:58 am, mykhal <michal.bo... at gmail.com> wrote:
> On Mar 13, 12:46 am, Terry Reedy <tjre... at 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.



More information about the Python-list mailing list