''' example of an iterator ''' 

class MyClass:    
    def __init__(self):
        self.data = [1,2,3]
        
    def __iter__(self):
        return MyClassIterator(self.data[:]) 
    
    
class MyClassIterator:
    ''' an iterator that iterates through its container elements in reverse '''
    def __init__(self, data):
        self.data = data
        self.pos = len(self.data)
        
    def next(self):
        
        if self.pos > 0:
            self.pos = self.pos-1
            return self.data[self.pos]
        else:
            raise StopIteration
        