'''

El propósito de este snipet de código es estudiar los iteradores de python.
Iteradores son distintos a Iterables, iterables son contenedores.

En esta implementación el iterador debe parar mediante StopIteration


'''


# Clase que cuenta numeros de 1 en 1
class countNumbers():

    def __iter__(self):
        self.number = 1
        return self

    def __next__(self):
        if self.number <= 20:
            x = self.number
            self.number +=1
            return x
        else:
            raise StopIteration


conteo = countNumbers() # <class '__main__.countNumbers'>
iterador = iter(conteo) # <class '__main__.countNumbers'>

assert conteo == iterador , "Esto deberá ser cierto"

for x in conteo:
    print(x)

for x in iterador:
    print(x)




'''

El propósito de este snipet de código es estudiar los iteradores de python.
Iteradores son distintos a Iterables, iterables son contenedores.

En esta implementación el iterador debe parar mediante StopIteration


'''


# Clase que cuenta numeros de 1 en 1
class countNumbers():

    def __iter__(self):
        self.number = 1
        return self

    def __next__(self):
        if self.number <= 20:
            x = self.number
            self.number +=1
            return x
        else:
            raise StopIteration


conteo = countNumbers() # <class '__main__.countNumbers'>
iterador = iter(conteo) # <class '__main__.countNumbers'>

assert conteo == iterador , "Esto deberá ser cierto"

for x in conteo:
    print(x)

for x in iterador:
    print(x)




El propósito de este snipet de código es estudiar los iteradores de python. Iteradores son distintos a Iterables, iterables son contenedores.  En esta implementación el iterador debe parar mediante StopIteration # Clase que cuenta numeros de 1 en 1 # <class '__main__.countNumbers'> # <class '__main__.countNumbers'>