On 23 November 2017 at 15:30, Paul Moore <p.f.moore@gmail.com> wrote:On 23 November 2017 at 14:24, Ivan Levkivskyi <levkivskyi@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 foundhe still likes the idea of unique hidden ids (like Serhiy proposes now) and no function scopes. After that there is Nick's messagehttps://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/brett%40python.org