def get_func_full_args(func):
 sig = inspect.signature(func)
 args = []
 for (arg_name, param) in sig.parameters.items():
  name = arg_name
  if (name == 'self'):
   continue
  if (param.kind == inspect.Parameter.VAR_POSITIONAL):
   name = ('*' + name)
  elif (param.kind == inspect.Parameter.VAR_KEYWORD):
   name = ('**' + name)
  if (param.default != inspect.Parameter.empty):
   args.append((name, param.default))
  else:
   args.append((name,))
 return args

def get_func_full_args ( func ) : sig = inspect . signature ( func ) args = [ ] for ( arg_name , param ) in sig . parameters . items ( ) : name = arg_name if ( name == 'self' ) : continue if ( param . kind == inspect . Parameter . VAR_POSITIONAL ) : name = ( '*' + name ) elif ( param . kind == inspect . Parameter . VAR_KEYWORD ) : name = ( '**' + name ) if ( param . default != inspect . Parameter . empty ) : args . append ( ( name , param . default ) ) else : args . append ( ( name , ) ) return args
return a list of tuples .