<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def print(self, tag=None, name=None):
 """ Prints each tuple to stdout flushing after each tuple. If `tag` is not `None` then each tuple has "tag: " prepended to it before printing. Args: tag: A tag to prepend to each tuple. name(str):
 Name of the resulting stream. When `None` defaults to a generated name. Returns: streamsx.topology.topology.Sink: Stream termination. .. versionadded:: 1.6.1 `tag`, `name` parameters. .. versionchanged:: 1.7 Now returns a :py:class:`Sink` instance. """

        _name = name
        if _name is None:
            _name = 'print'
        fn = streamsx.topology.functions.print_flush
        if tag is not None:
            tag = str(tag) + ': '
            fn = lambda v : streamsx.topology.functions.print_flush(tag + str(v))
        sp = self.for_each(fn, name=_name)
        sp._op().sl = _SourceLocation(_source_info(), 'print')
        return sp