numpy.lib.add_newdoc#
- lib.add_newdoc(разместить, obj, doc, warn_on_python=True)[источник]#
Добавить документацию к существующему объекту, обычно определённому в C
Цель — позволить более лёгкое редактирование строк документации без необходимости перекомпиляции. Это существует в основном для внутреннего использования в numpy.
- Параметры:
- разместитьstr
Абсолютное имя модуля для импорта
- objstr | None
Имя объекта, к которому добавляется документация, обычно имя класса или функции.
- docstr | tuple[str, str] | list[tuple[str, str]]
Если строка, документация для применения к obj
Если кортеж, то первый элемент интерпретируется как атрибут obj и второй как строка документации для применения -
(method, docstring)Если это список, то каждый элемент списка должен быть кортежем длины два —
[(method1, docstring1), (method2, docstring2), ...]- warn_on_pythonbool
Если True (по умолчанию), выдавать UserWarning если это используется для прикрепления документации к чистому python-объекту.
Примечания
Эта процедура никогда не вызывает ошибку, если строка документации не может быть записана, но вызовет ошибку, если документируемый объект не существует.
Эта процедура не может изменять неизменяемые строки документации, как в классах нового стиля или встроенных функциях. Поскольку эта процедура никогда не вызывает ошибку, вызывающая сторона должна вручную проверить, что строки документации были изменены.
Поскольку эта функция захватывает
char *из c-уровневого строкового объекта и помещает его вtp_docслот типа objнарушает ряд лучших практик C-API, а именно:изменение PyTypeObject после вызова PyType_Ready
вызов Py_INCREF на str и потеря ссылки, так что str никогда не будет освобожден
По возможности этого следует избегать.