On 20 juin, 21:41, eliben <[EMAIL PROTECTED]> wrote:
> > [1] except using compile to build a code object with the function's
> > body, then instanciate a function object using this code, but I'm not
> > sure whether it will buy you much more performance-wise. I'd personnaly
> > prefer this because I find it more explicit and readable, but YMMV.
>
> How is compiling more readable than exec -

Using compile and function(), you explicitely instanciate a new
function object, while using exec you're relying on a side effect.

> doesn't it require an extra
> step ?

Well... Your way:

   d = {}
  exec code in globals(), d
  return d['foo']

My way:

  return function(compile(code, '<string>', 'exec'), globals())

As far as I'm concern, it's two steps less - but YMMV, of course !-)

>  You generate code dynamically anyway.

Yes, indeed. Which may or not be the right thing to do here, but this
is a different question (and one I can't actually answer).

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to