Re: ¿Que es eso de Iter? (PYGTK)
Jesus Rodriguez
foxandxss en gmail.com
Vie Sep 1 18:42:18 CEST 2006
Gracias Luis, lo he entendido mejor :)
El día 1/09/06, Luis Rodrigo Gallardo Cruz <rodrigo en nul-unu.com> escribió:
>
> On Fri, Sep 01, 2006 at 11:39:25AM +0200, Jesus Rodriguez wrote:
> > La verdad es que ya he leido sobre los iter pero no he logrado
> entenderlo,
> > por eso coloqué este mensaje :) Y sigo sin entenderlo :P
>
> Un iter(ador) es un objeto que sabe como recorrer alguna estructura de
> datos. El chiste es que tu le das un iter a un bucle 'for' y entonces
> el bucle se repite una vez por cada elemento de la estructura. El
> 'for' lo único que tiene que hacer es pedirle los elementos uno a la
> vez y ejecutar el cuerpo para el elemento actual. El iter sabe en que
> parte de la estructura va y avisa cuando se terminan.
>
> Ejemplo básico: El iter para una lista es algo así como (pseudocódigo):
> class iterLista:
> indiceActual = 0
> lista = <algunaLista>
>
> getNext():
> if indiceActual < lista.length:
> <regresa lista[indicaActual]>
> indiceActual += 1
> else:
> <avisa que ya no hay>
>
> Y en otra parte en vez de decir
> for elem in lista:
> <bla bla>
>
> dices
> for elem in iterLista:
> <bla bla>
>
>
> ¿Y eso en que es mejor que pasar la lista y ya?, preguntas.
>
> Ah, pues que además de iterLista puedes hacer un
> iterArbolEnPreOrden
> iterArbolEnPostOrden
> iterResultSetDeLaBaseDeDatos (que puede no tener todo en memoria sino
> irlos recuperando uno por uno)
> iterEventosPorAtenderEnLaGUI (que nunca termina hasta que el usuario
> cierra el programa)
>
> y un largo etcetera.
>
> Y mantener separado el código de *que* hacer en cada iteración del de
> *como obtener el siguiente paso* de la iteración.
>
> Ahora ve y lee otra vez la documentación y tutoriales que habías
> visto. Espero que ésto te ayude a entenderles mejor.
>
> --
> Rodrigo Gallardo
> GPG-Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.5 (GNU/Linux)
>
> iD8DBQFE+GCTAZmDGK3JvCgRAnzWAJ4o6H26JNqjH+tUu6g5bXRQuckQ2QCeOeTH
> UqUwCxXi/NDeIo2JBLDxfX4=
> =e/EP
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
>
>
Más información sobre la lista de distribución Python-es