Вы можете использовать __defaults__
волхвы c:
>>> def f(x, cache=[]):
... cache.append(x)
>>> f.__defaults__
([],)
>>> f(2)
>>> f.__defaults__
([2],)
>>> f('a')
>>> f.__defaults__
([2, 'a'],)
>>> c, = f.__defaults__
>>> c
[2, 'a']
Просто для полноты можно использовать inspect.getfullargspec
, что более явно:
>>> import inspect
>>> inspect.getfullargspec(f)
FullArgSpec(args=['x', 'cache'], varargs=None, varkw=None, defaults=([2, 'a'],), kwonlyargs=[], kwonlydefaults=None, annotations={})
>>> inspect.getfullargspec(f).defaults
([2, 'a'],)