code: def make_signature(func):
      
  
      spec = inspect.getfullargspec(func)
      if spec.defaults is None:
          n_wo_defaults = len(spec.args)
          defaults = ('',) * n_wo_defaults
      else:
          n_wo_defaults = len(spec.args) - len(spec.defaults)
          defaults = ('',) * n_wo_defaults + tuple(spec.defaults)
      args = []
      for var, default in zip(spec.args, defaults):
          args.append(var if default == '' else var + '=' + repr(default))
      if spec.varargs:
          args.append('*' + spec.varargs)
      if spec.varkw:
          args.append('**' + spec.varkw)
      return args, spec.args
docs: Returns a tuple containing the paramenter list with defaults
      and parameter list.
  
      Examples
      --------
      >>> def f(a, b, c=2):
      >>>     return a * b * c
      >>> print(make_signature(f))
      (['a', 'b', 'c=2'], ['a', 'b', 'c'])