#python #cpython #python-c-extension
#python #cpython #python-c-extension
Вопрос:
Возможно ли при создании расширения C для Python каким-либо образом писать комментарии, которые предоставляются пользователям расширения в виде строк документации?
Комментарии:
1. Возможно, вы уже знаете об этом, но если нет: возможно, вы захотите изучить Cython. Вы пишете код в стиле Python, добавляете некоторые объявления типов, и он переводится на C и компилируется.
Ответ №1:
Строки документации для типов могут быть включены в качестве tp_doc
члена в PyTypeObject
структуру, см. пример в документах.
Строки документации для функций могут быть включены в ml_doc
поле таблицы методов модуля. Если вы хотите, чтобы ваши строки документации были «физически близки» к реальным функциям, вы могли бы включить строковые константы над определениями ваших функций, на которые вы ссылаетесь в таблице методов.
Строки документации для методов могут быть назначены doc
полю в таблице-элементе типа.
Строки документации для модулей могут быть переданы в качестве параметра функциям Py_InitModule3()
или Py_InitModule4()
.
ОБНОВЛЕНИЕ: Python3 не поддерживается Py_InitModule3()
, и метод был заменен на PyModule_Create()
.