[pyar] Longitud de un iterador

claudio canepa ccanepacc en gmail.com
Jue Ene 13 18:25:09 ART 2011


On Thu, Jan 13, 2011 at 6:16 PM, Anthony Lenton <antoniolenton en gmail.com>wrote:

> > Yo diria que el mecanismo standard es justamente definir el metodo magico
> > __len__:
> >
> >>>> class A(object):
> > ... def __len__(self):
> > ... return 42
> > ...
> >>>> a = A()
> >>>> len(a)
> > 42
> >>>>
>
> Sip, fijate que es lo que estoy haciendo en
> MiIteradorQueSabeSuLongitud.  Lo que tenía esperanzas era de que se
> pudiera hacer sin tener que definir una clase nueva proxy para mi
> generador solo para hacer esto...
>
> Gracias!
>
> --
> Anthony Lenton
>
>

A lo que voy, tal como vos dijiste, el caso general de iterador no ofrece
len porque puede ser una operacion cara (o indefinida si el generador no
termina)
Tu caso particular puede ser barato, pero el interprete no puede adivinarlo
si solo sabe que es iterador.
Entonces te ves obligado a darle informacion adicional, y el lugar standard
para hacerlo es en el metodo __len__.
En otras palabras, diria que no es posible  hacerlo en 0 lineas.

--
claudio
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110113/9c545c6b/attachment.html>


More information about the pyar mailing list