[Python-Dev] iter alternate form and *args and **kwargs (Was: Wishlist: dowhile)

James Y Knight foom at fuhm.net
Thu Jun 16 17:43:34 CEST 2005


On Jun 16, 2005, at 10:50 AM, Steven Bethard wrote:

> On 6/15/05, Benji York <benji at benjiyork.com> wrote:
>
>> Steven Bethard wrote:
>>
>>> I would prefer that the alternate iter() form was broken off into
>>> another separate function, say, iterfunc(), that would let me write
>>> Jp's solution something like:
>>>
>>> for chunk in iterfunc('', f1.read, CHUNK_SIZE):
>>>     f2.write(chunk)
>>>
>>
>> How about 2.5's "partial":
>>
>> for chunk in iter(partial(f1.read, CHUNK_SIZE), ''):
>>     f2.write(chunk)
>>
>
> Yeah, there are a number of workarounds.  Using partial, def-ing a
> function, or using a lambda will all work.  My point was that, with
> the right API, these workarounds wouldn't be necessary.  Look at
> unittest.TestCase.assertRaises to see another example of the kind of
> API I think should be supported (when possible, of course).

I think it's really the other way around. Forcing every API that  
takes a callable to also take a *args, **kwargs is a workaround for  
not having partial.

James


More information about the Python-Dev mailing list