, чтобы ухаживать только за ключевыми словами args (а потому, что значения по умолчанию и kwonlydefaults могут быть None
):
spec = inspect.getfullargspec(func)
defaults = dict(zip(spec.args[::-1], (spec.defaults or ())[::-1]))
defaults.update(spec.kwonlydefaults or {})