class molecule(object):

    def __init__(self,name):
        self.natoms = 10

    def __iter__(self):
        for i in range(1, self.natoms + 1):
            yield self[i]

    def __getitem__(self, i):
        return 'atom{}'.format(i)


ben = molecule('ben')
ite = iter(ben)
assert next(ite) == 'atom1'
assert next(ite) == 'atom2'
ite2 = iter(ben)
assert next(ite) == 'atom3'
assert next(ite2) == 'atom1'