Как мне использовать Python 3.8 __text_signature__?

Я играю с функциями и такими в Python 3.8, когда я сталкиваюсь с этим:

bpo-36542: подпись функций Python теперь может быть переопределена указанием __text_signature__ приписывать.

Он говорит, что он должен быть совместимым с функциями 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 ответов

Другие вопросы по тегам