Getting list of parameter names inside python function [duplicate] Getting list of parameter names inside python function [duplicate] python python

Getting list of parameter names inside python function [duplicate]


Well we don't actually need inspect here.

>>> func = lambda x, y: (x, y)>>> >>> func.__code__.co_argcount2>>> 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__(3,)

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


locals() returns a dictionary with local names:

def func(a,b,c):    print(locals().keys())

prints the list of parameters. If you use other local variables those will be included in this list. But you could make a copy at the beginning of your function.


If you also want the values you can use the inspect module

import inspectdef func(a, b, c):    frame = inspect.currentframe()    args, _, _, values = inspect.getargvalues(frame)    print 'function name "%s"' % inspect.getframeinfo(frame)[2]    for i in args:        print "    %s = %s" % (i, values[i])    return [(i, values[i]) for i in args]>>> func(1, 2, 3)function name "func"    a = 1    b = 2    c = 3[('a', 1), ('b', 2), ('c', 3)]