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'
Y2xhc3MgbW9sZWN1bGUob2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZixuYW1lKToKICAgICAgICBzZWxmLm5hdG9tcyA9IDEwCgogICAgZGVmIF9faXRlcl9fKHNlbGYpOgogICAgICAgIGZvciBpIGluIHJhbmdlKDEsIHNlbGYubmF0b21zICsgMSk6CiAgICAgICAgICAgIHlpZWxkIHNlbGZbaV0KCiAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaSk6CiAgICAgICAgcmV0dXJuICdhdG9te30nLmZvcm1hdChpKQoKCmJlbiA9IG1vbGVjdWxlKCdiZW4nKQppdGUgPSBpdGVyKGJlbikKYXNzZXJ0IG5leHQoaXRlKSA9PSAnYXRvbTEnCmFzc2VydCBuZXh0KGl0ZSkgPT0gJ2F0b20yJwppdGUyID0gaXRlcihiZW4pCmFzc2VydCBuZXh0KGl0ZSkgPT0gJ2F0b20zJwphc3NlcnQgbmV4dChpdGUyKSA9PSAnYXRvbTEn