[Python-ideas] An alternative to PEP 572's Statement-Local Name Bindings

Mike Miller python-ideas at mgmiller.net
Sun Mar 4 22:39:54 EST 2018


On 2018-03-03 16:51, Greg Ewing wrote:
>> 2018-03-03 8:40 GMT+01:00 Nick Coghlan <ncoghlan at gmail.com>:
>>>    pairs = [(f(y), g(y)) for x in things with bind(h(x)) as y]
> 
> I don't mucn like "with bind(h(x)) as y" because it's kind of
> like an abstraction inversion -- you're building something
> complicated on top of something complicated in order to get
> something simple, instead of just having the simple thing
> to begin with. If nothing else, it has a huge runtime cost
> for the benefit it gives.

Reading this thread I was thinking that the assignment part was happening too 
far away from where the action was and came up with this variant:

     [ f(y), g(y) for x, y as h(x) in things ]

Plus or minus an extra set of parentheses for clarity.

-Mike


More information about the Python-ideas mailing list