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 <fijall at 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 <guido at 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 <fijall at 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 at 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/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4