擅长:python、mysql、java
<p>可以说,找到函数签名的最简单方法是<code>help(function)</code>:</p>
<pre><code>>>> def function(arg1, arg2="foo", *args, **kwargs): pass
>>> help(function)
Help on function function in module __main__:
function(arg1, arg2='foo', *args, **kwargs)
</code></pre>
<p>另外,在Python 3中,在名为<code>signature</code>的<code>inspect</code>模块中添加了一个方法,该模块用于表示<a href="https://docs.python.org/3/library/inspect.html#inspect.signature">signature of a callable object and its return annotation</a>:</p>
<pre><code>>>> from inspect import signature
>>> def foo(a, *, b:int, **kwargs):
... pass
>>> sig = signature(foo)
>>> str(sig)
'(a, *, b:int, **kwargs)'
>>> str(sig.parameters['b'])
'b:int'
>>> sig.parameters['b'].annotation
<class 'int'>
</code></pre>