def wrapper_function(*args, **kwargs): arg_names = original_function.func_code.co_varnames params = dict(zip(arg_names, args)) params.update(kwargs) # now you have args and kwargs collected to the dictionary params # you can read and modify them here and then call the original function return original_function(**params)