有办法获取函数的参数名称吗?
def foo(bar, buz):
pass
magical_way(foo) == ["bar", "buz"]
有办法获取函数的参数名称吗?
def foo(bar, buz):
pass
magical_way(foo) == ["bar", "buz"]
使用Python标准库中的inspect模块(执行内省的最干净、最可靠的方法)。
具体来说,inspect.getargspec(f)
返回f
参数的名称和默认值,如果你只想要名称而不关心特殊形式*a
,**k
,
import inspect
def magical_way(f):
return inspect.getargspec(f)[0]
return inspect.getargspec(f).args
。该代码行用于获取函数 f
的参数列表。 - John La Rooyinspect.signature(f).parameters
翻译为:检查函数 f 的签名参数。 - lovesh>>> 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']
.args
仅适用于 Python 2.6 及以上版本。对于旧版本,您必须使用 [0]
。 - Wolphmagical_way()
函数加一。 - Chinmay Kanchi