Python @ DjangoSpin

PyPro #96 Iterator Design Pattern

Buffer this pageShare on FacebookPrint this pageTweet about this on TwitterShare on Google+Share on LinkedInShare on StumbleUpon
Reading Time: 1 minutes

Iterator Design Pattern in Python

Iterator Design Pattern in Python

Write a Python program to implement Iterator Design Pattern.

class CountTo:
    def __init__(self, upperBound):
        self.upperBound = upperBound
        self.numbersInEnglish = ["one", "two", "three", "four", "five", 'six', 'seven', 'eight', 'nine']
        self.numbersInEnglish = self.numbersInEnglish[:upperBound]              # trims the numbersInEnglish list to as many elements as the number supplied.
        self.index = 0                                                          # index variable needed to keep track of the current position of the iterator in numbersInEnglish list.
    def __iter__(self):
        return self
    def __next__(self):
        try:
            result = self.numbersInEnglish[self.index]
        except IndexError:
            raise StopIteration
        self.index += 1
        return result
 
countTo3 = CountTo(3)
print(next(countTo3))
print(next(countTo3))
print(next(countTo3))
 
 
### OUTPUT ###
one
two
three

See also:

Buffer this pageShare on FacebookPrint this pageTweet about this on TwitterShare on Google+Share on LinkedInShare on StumbleUpon

Leave a Reply