On 11/07/2013 1:15 PM, Joshua Landau wrote:
I have this innocent and simple code:

from collections import deque
exhaust_iter = deque(maxlen=0).extend
exhaust_iter.__doc__ = "Exhaust an iterator efficiently without
caching any of its yielded values."

Obviously it does not work. Is there a way to get it to work simply
and without creating a new scope (which would be a rather inefficient
a way to set documentation, and would hamper introspection)?

I would just go with the most obvious approach:

    def exhaust_iter(iter):
        """
        Exhaust an iterator efficiently without caching
        any of its yielded values
        """
        deque(maxlen=0).extend(iter)

It's not going to be that inefficient unless you're calling it in a long inner loop.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to