看看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)>