如何获取方法参数名称?

2024-04-09

假设有一个函数a_method被定义为

def a_method(arg1, arg2):
    pass

从...开始a_method本身,我如何获取参数名称 - 例如,作为字符串元组,例如("arg1", "arg2")?


看看inspect http://docs.python.org/library/inspect.html模块 - 这将为您检查各种代码对象属性。

>>> inspect.getfullargspec(a_method)
(['arg1', 'arg2'], None, None, None)

其他结果是 *args 和 **kwargs 变量的名称以及提供的默认值。 IE。

>>> 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() https://docs.python.org/library/inspect.html#introspecting-callables-with-the-signature-object查看可调用对象的调用签名:

>>> inspect.signature(foo)
<Signature (a, b, c=4, *arglist, **keywords)>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取方法参数名称? 的相关文章

随机推荐