Ответ 1
Эти атрибуты предназначены для интроспекции объектов Python, определенных в коде C. C-API Argument Clinic предоставляет данные, чтобы помочь модулю inspect
при построении Signature
. Ранее не была проверена функция C-API.
См. внутреннюю функцию inspect._signature_fromstr()
о том, как используется значение __text_signature__
.
В настоящее время атрибут __text_signature__
заполняется из внутренней docstring, заданной для объектов в C-API; простой текстовый поиск выполняется для objectname(...)\n--\n\n
, где \n--\n\n
является типичным для строк документации, созданных с помощью атрибутов. Взгляните на type
слоты для объектов, если вы хотите найти несколько примеров. Или вы можете посмотреть на источник audioop
, чтобы узнать, как используется Аргументская клиника для определения подписей; Argument Clinic script запускается для тех, кто строит для создания докстрон (в сопроводительном audioop.c.h
file).
Атрибут __signature__
, если он присутствует, будет объектом inspect.Signature()
; вместо предоставления текстовой версии C-API может предоставить полностью проанализированный экземпляр Signature
вместо этого.