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