Using python 2.4, I'm attempting to identify, at runtime, which of an arbitrary function's arguments have default values. Unfortunately, although I can find what the default values are, I can't seem to get a handle on which parameters they correspond to. For example:
def foo(a, b, c=5):
return a + b + c
import inspect
inspect.getargspec(foo) # output is: (['a', 'b', 'c'], None, None, (5,))
The output of getargspec
is clearer in python 2.6, which returns a named tuple:
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(5,))
Python obviously has enough information to accomplish the task during execution. How can I get at it?