This returns a list of the default arguments
    :param func: callable object
    :return:     list of obj of default parameters

def function_defaults(func):
    """
    This returns a list of the default arguments
    :param func: callable object
    :return:     list of obj of default parameters
    """
    if getattr(inspect, 'signature',None) is None:
        return inspect.getargspec(func)[-1] or []
    else:
        return [v.default for k,v in list(
            inspect.signature(func).parameters.items())
                if v.default is not inspect._empty]