Python列表函数参数名称

时间:2010-08-19 00:42:46

标签: python function arguments

有没有办法获取函数需要的参数名称?

def foo(bar, buz):
    pass

magical_way(foo) == ["bar", "buz"]

2 个答案:

答案 0 :(得分:49)

使用Python标准库中的inspect模块(用于执行内省的最干净,最可靠的方法)。

具体来说,inspect.getargspec (f)会返回f参数的名称​​和默认值 - 如果您只想要名称而不关心关于特殊表格*a**k

import inspect

def magical_way(f):
    return inspect.getargspec(f)[0]

完全符合您的明确要求。

答案 1 :(得分:12)

>>> import inspect
>>> def foo(bar, buz):
...     pass
... 
>>> inspect.getargspec(foo)
ArgSpec(args=['bar', 'buz'], varargs=None, keywords=None, defaults=None)
>>> def magical_way(func):
...     return inspect.getargspec(func).args
... 
>>> magical_way(foo)
['bar', 'buz']