class Delegator: def __init__(self): self.__dict__ = { 'object': None } def set(self, obj): self.__init__() self.object = obj for attr in dir(obj): if attr != '__class__': setattr(self, attr, getattr(obj, attr))
def re_search_x(regexp, s, delegator): m = regexp.search(s) if not m: return False delegator.set(m) return True
if __name__ == '__main__': import sys, re re_a = re.compile('a') re_b = re.compile('b') m = Delegator() for s in iter(sys.stdin.readline, ""): if re_search_x(re_a, s, m): print "a: matched at %d" % m.start() elif re_search_x(re_b, s, m): print "b: matched at %d" % m.start()