获取python函数中的参数名列表

Getting list of parameter names inside python function

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Getting method parameter names in python

有没有一种简单的方法可以进入一个python函数并获得参数名列表?

例如:

1
2
3
4
5
def func(a,b,c):
    print magic_that_does_what_I_want()

>>> func()
['a','b','c']

谢谢


我们真的不需要EDOCX1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> func = lambda x, y: (x, y)
>>>
>>> func.__code__.co_argcount
2
>>> 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,)

对于Python2.5和老鼠,使用func_codeInstead of __code__func_defaultsInstead of __defaults__


复制这个网站码到您的网站上以设置一个投票箱在您的网站上。

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

Prints the list of parameters.如果您使用其他本地变量,这些变量将被包括在这个列表中。但你可以在功能的初期复制一份。


如果你还想要这个值,你可以使用inspect模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import inspect

def 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)]


ZZU1