[Python-Dev] Tricky way of of creating a generator via a comprehension expression (original) (raw)
Paul Moore p.f.moore at gmail.com
Thu Nov 23 09:30:54 EST 2017
- Previous message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Next message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 23 November 2017 at 14:24, Ivan Levkivskyi <levkivskyi at 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
- Previous message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Next message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]