如何使用Python 3.8的__text_signature__?

时间:2019-07-08 18:44:29

标签: python signature python-3.8

遇到这种情况时,我正在使用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.

>>> 

进行此添加的原因是什么,我们将如何使用它?尽管它会更改该函数的所有调用提示,但如何影响所接受的参数呢?

0 个答案:

没有答案