python making object iterable code example

Example 1: create iterator object python

iterable = ['Apple', 'Banana', 'Cherry']

iter(iterable)

Example 2: python make class iterable

"""
Example for a Class that creates an iterator for each word in a sentence

The keyword 'yield' is key (no pun intended) to the solution. It works the
same as return with the exception that on the next call to the function it
will resume where it left off
"""

class WordIterator:
    def __init__(self, string, seperator = ' ') -> None:
        self.string = string
        self.seperator = seperator

    def __iter__(self):
        this_iter_result = ''
        for char in self.string:
            if char != self.seperator:
                this_iter_result += char
            elif this_iter_result != '':
                yield this_iter_result
                this_iter_result = ''
        if this_iter_result != '':
            yield this_iter_result

wrd_iter = WordIterator('This is a sentence')

for i in wrd_iter:
    print (i, end=',') # outputs 'This,is,a,sentence,'