Shame on me indeed.
On Wed, Apr 1, 2009 at 5:38 AM, Guido van Rossum <gu...@python.org> wrote: > OK that might change matters. Shame on you though for posting a patch > without any explanation of the issue. > > On Tue, Mar 31, 2009 at 8:36 PM, Maciej Fijalkowski <fij...@gmail.com> wrote: >> Because classes have now it's own local scope (according to Martin) >> >> It's not about exec in class, it's about exec in class in nested function. >> >> On Wed, Apr 1, 2009 at 5:25 AM, Guido van Rossum <gu...@python.org> wrote: >>> Well hold on for a minute, I remember we used to have an exec >>> statement in a class body in the standard library, to define some file >>> methods in socket.py IIRC. It's a totally different case than exec in >>> a nested function, and I don't believe it should be turned into a >>> syntax error at all. An exec in a class body is probably meant to >>> define some methods or other class attributes. I actually think the >>> 2.5 behavior is correct, and I don't know why it changed in 2.6. >>> >>> --Guido >>> >>> On Tue, Mar 31, 2009 at 8:15 PM, Maciej Fijalkowski <fij...@gmail.com> >>> wrote: >>>> So. The issue was closed and I suppose it was closed by not entirely >>>> understanding >>>> the problem (or I didn't get it completely). >>>> >>>> The question is - what the following code should do? >>>> >>>> def f(): >>>> a = 2 >>>> class C: >>>> exec 'a = 42' >>>> abc = a >>>> return C >>>> >>>> print f().abc >>>> >>>> (quick answer - on python2.5 it return 42, on python 2.6 and up it >>>> returns 2, the patch changes >>>> it to syntax error). >>>> >>>> I would say that returning 2 is the less obvious thing to do. The >>>> reason why IMO this should >>>> be a syntax error is this code: >>>> >>>> def f(): >>>> a = 2 >>>> def g(): >>>> exec 'a = 42' >>>> abc = a >>>> >>>> which throws syntax error. >>>> >>>> Cheers, >>>> fijal >>>> _______________________________________________ >>>> Python-Dev mailing list >>>> Python-Dev@python.org >>>> http://mail.python.org/mailman/listinfo/python-dev >>>> Unsubscribe: >>>> http://mail.python.org/mailman/options/python-dev/guido%40python.org >>>> >>> >>> >>> >>> -- >>> --Guido van Rossum (home page: http://www.python.org/~guido/) >>> >> > > > > -- > --Guido van Rossum (home page: http://www.python.org/~guido/) > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com