<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def and_return_result_of(self, return_value):
 """ Causes the double to return the result of calling the provided value. :param return_value: A callable that will be invoked to determine the double's return value. :type return_value: any callable object """

        if not check_func_takes_args(return_value):
            self._return_value = lambda *args, **kwargs: return_value()
        else:
            self._return_value = return_value

        return self