On 23 November 2017 at 15:30, Paul Moore <p.f.mo...@gmail.com> wrote:
> On 23 November 2017 at 14:24, Ivan Levkivskyi <levkivs...@gmail.com> > wrote: > >> My main concern is that comprehension is not equivalent to a for loop > >> for a specific reason - the scope issue. Has anyone looked back at the > >> original discussions to confirm *why* a function was used? > >> > >> My recollection: > >> > >> >>> i = 1 > >> >>> a = [i for i in (1,2,3)] > >> >>> print(i) > >> 1 > >> > >> Serihy's approach (and your described expansion) would have print(i) > >> return NameError. > > > > > > Absolutely no, it will still print 1. The internal implementation will > use > > unique ids internally (see https://bugs.python.org/issue10544 for > details). > > > > Ok, cool. My main point still applies though - has anyone confirmed > why a function scope was considered necessary at the time of the > original implementation, but it's apparently not now? I'm pretty sure > it was a deliberate choice, not an accident. >From what Nick explained on b.p.o. I understand that this is closer to the "accident" definition. Also the original issue https://bugs.python.org/issue1660500 doesn't have any discussion of the implementation _strategy_. So I tried to dig the mailing list, in the latest Guido's message I have found https://mail.python.org/pipermail/python-3000/2006-December/005218.html he still likes the idea of unique hidden ids (like Serhiy proposes now) and no function scopes. After that there is Nick's message https://mail.python.org/pipermail/python-3000/2006-December/005229.html where he says that he still likes pseudo-scopes more. Then I lost the track of discussion. It may well be Nick's intentional decision (and it has its merits) but I am not sure it was a conscious consensus. Nick could probably add more. Also I propose to wait and see when Serhiy will show us his complete implementation. -- Ivan
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com