<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def start( self, target=None, args=None, kwargs=None, advices=None, exec_ctx=None, ctx=None ):
 """ Start to proceed this Joinpoint in initializing target, its arguments and advices. Call self.proceed at the end. :param callable target: new target to use in proceeding. self.target by default. :param tuple args: new target args to use in proceeding. self.args by default. :param dict kwargs: new target kwargs to use in proceeding. self.kwargs by default. :param list advices: advices to use in proceeding. self advices by default. :param dict exec_ctx: execution context. :param target_ctx: target ctx to use in proceeding. :return: self.proceed() """


        # init target and _interception if not None as set_target method do
        if target is not None:
            self.set_target(target=target, ctx=ctx)

        # init args if not None
        if args is not None:
            self.args = args

        # init kwargs if not None
        if kwargs is not None:
            self.kwargs = kwargs

        # get advices to process
        if advices is None:
            if self._advices is not None:
                advices = self._advices
            else:
                advices = self.get_advices(self._interception)

        # initialize self._advices_iterator
        self._advices_iterator = iter(advices)

        # initialize execution context
        self.exec_ctx = self._exec_ctx.copy()

        if exec_ctx is not None:
            self.exec_ctx.update(exec_ctx)

        result = self.proceed()

        return result