<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def call_fn(self, what, *args, **kwargs):
 """ Lazy call init_adapter then call the function """

        logger.debug('f_{0}:{1}{2}({3})'.format(
            self.call_stack_level,
            ' ' * 4 * self.call_stack_level,
            what,
            arguments_as_string(args, kwargs)))
        port, fn_name = self._what(what)
        if port not in self['_initialized_ports']:
            self._call_fn(port, 'init_adapter')
            self['_initialized_ports'].append(port)
        return self._call_fn(port, fn_name, *args, **kwargs)