遇到这种情况时,我正在使用Python 3.8中的函数:
bpo-36542:现在,可以通过指定
__text_signature__
属性来覆盖Python函数的签名。
它表示C函数(内建函数)和Python函数之间必须保持一致。很简单,但是我尝试了一些修改,似乎对它可以具有的值有一些限制(阅读:在help(func)
上正确显示)。
>>> def tesr(*args, **kwargs):
... """docstring."""
... return args, kwargs
...
>>> help(tesr)
Help on function tesr in module __main__:
tesr(*args, **kwargs)
docstring.
>>> tesr.__text_signature__ = "(a, b, c=None)"
>>> help(tesr)
Help on function tesr in module __main__:
tesr(a, b, c=None)
docstring.
>>> tesr.__text_signature__ = "(f0zb4z)"
>>> help(tesr)
Help on function tesr in module __main__:
tesr(f0zb4z)
docstring.
>>> tesr.__text_signature__ = "tesr"
>>> help(tesr)
Help on function tesr in module __main__:
tesr(...)
docstring.
>>>
进行此添加的原因是什么,我们将如何使用它?尽管它会更改该函数的所有调用提示,但如何影响所接受的参数呢?