'x.__getattr__(\'name\') <==> x.name
@return attribute of instance dispatcher, receiver, or sender'

def __getattr__(self, name):

    for obj in (self.dispatcher, self.receiver, self.sender):
        try:
            return getattr(obj, name)
        except (AttributeError,):
            pass
    err = "'%s'    object    has    no    attribute    '%s'"
    raise AttributeError((err % (self.__class__.__name__, name)))
