[Python-ideas] How assignment should work with generators?

Steven D'Aprano steve at pearwood.info
Mon Nov 27 19:31:56 EST 2017


On Tue, Nov 28, 2017 at 11:15:56AM +1300, Greg Ewing wrote:
> Guido van Rossum wrote:
> >While it appears to rhyme with the use of a lone 
> >'*' in function signatures, it would actually mean the opposite: in 
> >signatures it means "don't allow any more".
> 
> That's the usage that's out of step with the rest -- all
> the others can be seen as some form of wildcard.
> 
> So it's already confusing, and I don't think adding another
> wildcard meaning would make things any worse.

How does "stop iterating here" equate to a wildcard?

We already have a "wildcard" for iterable unpacking, using the extended 
iterable unpacking syntax:

    x, y, *z = iterable

which unpacks the first two items into x and y and the rest into z. This 
is the opposite: *stop* unpacking, so that after x and y are unpacked 
the process stops. I don't see how this is conceptually a wild card.


-- 
Steve


More information about the Python-ideas mailing list