Python – Getting list of parameter names inside python function


Possible Duplicate:
Getting method parameter names in python

Is there an easy way to be inside a python function and get a list of the parameter names?

For example:

def func(a,b,c):
    print magic_that_does_what_I_want()

>>> func()


Best Solution

Well we don't actually need inspect here.

>>> func = lambda x, y: (x, y)
>>> func.__code__.co_argcount
>>> func.__code__.co_varnames
('x', 'y')
>>> def func2(x,y=3):
...  print(func2.__code__.co_varnames)
...  pass # Other things
>>> func2(3,3)
('x', 'y')
>>> func2.__defaults__

For Python 2.5 and older, use func_code instead of __code__, and func_defaults instead of __defaults__.