Documenting builtin methods

Steven D'Aprano steve at pearwood.info
Thu Jul 11 09:15:08 CEST 2013


On Thu, 11 Jul 2013 17:06:39 +1000, Chris Angelico wrote:

> On Thu, Jul 11, 2013 at 4:06 PM, Steven D'Aprano <steve at pearwood.info>
> wrote:
>> I think the right solution here is the trivial:
>>
>> def exhaust(it):
>>     """Doc string here."""
>>     deque(maxlen=0).extend(it)
>>
>>
>> which will be fast enough for all but the tightest inner loops. But if
>> you really care about optimizing this:
>>
>>
>> def factory():
>>     eatit = deque(maxlen=0).extend
>>     def exhaust_iter(it):
>>         """Doc string goes here"""
>>         eatit(it)
>>     return exhaust_iter
>>
>> exhaust_it = factory()
>> del factory
>>
>>
>> which will be about as efficient as you can get while still having a
>> custom docstring.
> 
> Surely no reason to go for the factory function:
> 
> def exhaust(it,eatit=deque(maxlen=0).extend):
> 	eatit(it)

Now you have the function accept a second argument, which is public, just 
to hold a purely internal reference to something that you don't want the 
caller to replace.


-- 
Steven



More information about the Python-list mailing list