Python-如何获取方法参数名称?
鉴于Python
函数:
def a_method(arg1, arg2): pass
如何提取参数的数量和名称。即,鉴于我有提及func,因此我希望func.[something]
返回("arg1", "arg2")
。
为此的使用场景是,我有一个装饰器,并且希望以与实际函数作为键一样的顺序使用方法参数。即,"a,b"
我打电话时装饰器的外观如何a_method("a", "b")
?
回答:
看一下inspect
模块-这将为你检查各种代码对象属性。
>>> inspect.getfullargspec(a_method)(['arg1', 'arg2'], None, None, None)
其他结果是 args和* kwargs变量的名称,以及提供的默认值。即。
>>> def foo(a, b, c=4, *arglist, **keywords): pass>>> inspect.getfullargspec(foo)
(['a', 'b', 'c'], 'arglist', 'keywords', (4,))
请注意,在某些Python实现中,某些可调用对象可能不是自省的。例如,在CPython中,C中定义的某些内置函数不提供有关其参数的元数据。结果,ValueError
如果你inspect.getfullargspec()
在内置函数上使用,则会得到一个。
从Python 3.3开始,你可以inspect.signature()
用来查看可调用对象的调用签名:
>>> inspect.signature(foo)<Signature (a, b, c=4, *arglist, **keywords)>
以上是 Python-如何获取方法参数名称? 的全部内容, 来源链接: utcz.com/qa/424174.html