Python列表函数参数名称

Python list function argument names

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

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

1
2
3
4
def foo(bar, buz):
    pass

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


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

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

1
2
3
4
import inspect

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

完全符合您的要求。


1
2
3
4
5
6
7
8
9
10
11
>>> 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']