Python 列表函数参数名称

48 投票
2 回答
65540 浏览
提问于 2025-04-16 02:59

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

def foo(bar, buz):
    pass

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

2 个回答

19
>>> 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']

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

75

使用Python标准库中的inspect模块,这是进行代码检查的最简单、最可靠的方法。

具体来说,inspect.getargspec(f)可以返回函数f的参数名称和默认值。如果你只想要参数名称,而不关心像*a**k这样的特殊形式,

import inspect

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

这完全符合你的要求。

撰写回答