On 12/07/2013 9:11 AM, Joshua Landau wrote:
I also feel that:

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

is a very unobvious way to change a docstring and hides what I'm doing
very effectively.

My last post seems to have been eaten by either Thunderbird or the EternalSeptember servers, but it contained an erroneous claim that the straight function version performed as well as the factory one. However, in the interim a co-worker has come up with a slightly faster variant:

from functools import partial
from collections import deque

class exhaust_it(partial):
    """custom doc string"""

exhaust_it = exhaust_it(deque(maxlen=0).extend)

Shadowing the class name with the partial instance will ensure it has the same name when accessed via help(), and it's a simple way to avoid needing to clean up the namespace, as well.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to