[Python-ideas] PEP for issue2292, "Missing *-unpacking generalizations"

Oscar Benjamin oscar.j.benjamin at gmail.com
Mon Jul 15 22:01:19 CEST 2013


On 15 July 2013 12:08, Joshua Landau <joshua.landau.ws at gmail.com> wrote:
> On 15 July 2013 11:40, Oscar Benjamin <oscar.j.benjamin at gmail.com> wrote:
>
> In fact, I'd much like it if there was an iterable "unpacking" method
> for functions, too, so "chain.from_iterable()" could use the same
> interface as "chain" (and str.format with str.format_map, etc.). I
> feel we already have a good deal of redundancy due to this.

I've also considered this before. I don't know what a good spelling
would be but lets say that it uses *args* so that you have a function
signature like:

    def chain(*iterables*):
       for iterable in iterables:
            yield from iterable

And then if the function is called with

    for line in chain(first_line, *inputfile):
        # do stuff

then iterables would be bound to a lazy generator that chains
[first_line] and inputfile. Then you could create the unpacking
iterator I wanted by just using chain e.g.:

    chain(prepend, *iterable, append)


Oscar


More information about the Python-ideas mailing list