在Python 3.5中,您可以检查内置函数的__text_signature__:
>>> eval.__text_signature__
'($module, source, globals=None, locals=None, /)'
要么
>>> abs.__text_signature__
'($module, x, /)'
>>> abs(x=5)
Traceback (most recent call last):
File "", line 1, in
TypeError: abs() takes no keyword arguments
(x不能用作关键字参数)
/表示后面的参数可以用作关键字参数. C.F.
>>> compile.__text_signature__
'($module, /, source, filename, mode, flags=0,\n dont_inherit=False, optimize=-1)'
>>> compile(source='foo', filename='bar', mode='exec')
at 0x7f41c58f0030, file "bar", line 1>
当然,即使在3.5中也存在错误:
>>> sorted.__text_signature__
'($module, iterable, key=None, reverse=False)'
遗憾的是,Python文档本身尚未提供此信息.