Objective of the following program is to learn python generators and iterator implementation,in order to understand Python magic methods, I've started working on the following example, Here goes my code,
I've stucked implementing the iteritems function - also I want to know whether I'm going on right direction or I'm conceptually wrong in understanding of python magic methods, link for any nice tutorial may also help me out.....
import random
class Random(object):
    """ generate randomised int of specified length --> [r1, r2, r3....] """
    def __init__(self, length = 1, rand_range = 100):
        self.index = 0
        self.generated_range = []
        self.length = length if str(length).isdigit() else 1
        self.rand_range = rand_range if str(rand_range).isdigit() else 100
    def __iter__(self): return self
    def next(self):
        if self.index < self.length:
            item = random.randrange(0, self.rand_range)
            self.generated_range.append(item)
            self.index += 1
            return item
        raise StopIteration
    def __eq__(self, obj):
        if self.length == obj.length and self.rand_range == obj.rand_range:
            return True
        return False
    def __len__(self):
        return self.length
    def __contains__(self, item):
        if not self.index == self.length:
            while self.next(): continue
        if item in self.generated_range:
            return True
        return False
    def __getitem__(self, key):
        if key in self.generated_range:
            return key * 100
        raise KeyError
    def __setitem__(self, key, value):
        raise NotImplemented
    def __delitem__(self, key):
        raise NotImplemented
    def iteritems(self):
        if not self.index == self.length:
            while self.next(): continue
        for item in self.generated_range:
            yield item
if __name__ == '__main__':
    r1 = Random(10)
    print [ r for r in r1]
    print 10 in r1
    r2 = Random(20)
    print r2.iteritems()
UPDATE:
CodePAD LINK: http://codepad.org/WWR4WKOF