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. Paul _______________________________________________ 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