<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ifire(self, event, *args, **kwargs):
 """ Iteratively fire event, returning generator. Calls each handler using given arguments, upon iteration, yielding each result. :param str name: Event name :param tuple args: positional arguments to call each handler with :param dict kwargs: keyword arguments to call each handler with :return generator: a generator yielding a tuple of handler, return value """

        if not self._maybe_create_on_fire(event):
            return

        # Wrap the generator per item to force that this method be a generator
        # Python 3.x of course has yield from, which would be great here.
        # for x in self[event].ifire(*args, **kwargs)
        #     yield x
        return self[event].ifire(*args, **kwargs)