numpy.lib.add_newdoc#

lib.add_newdoc(place, obj, doc, warn_on_python=True)[source]#

为现有对象(通常是C语言定义的)添加文档

目的是允许在不重新编译的情况下更轻松地编辑文档字符串。此函数主要供 NumPy 内部使用。

参数:
placestr

要从中导入的模块的绝对名称

objstr | None

要添加文档的对象名称,通常是类名或函数名。

docstr | tuple[str, str] | list[tuple[str, str]]

如果为字符串,则该文档字符串将应用于 obj

如果为元组,则第一个元素被解释为 obj 的一个属性,第二个元素是要应用的文档字符串 - (method, docstring)

如果为列表,则列表中的每个元素都应为长度为二的元组 - [(method1, docstring1), (method2, docstring2), ...]

warn_on_pythonbool

如果为 True(默认值),则当此函数用于为纯 Python 对象附加文档时,将发出 UserWarning 警告。

备注

此例程在无法写入文档字符串时从不引发错误,但如果被文档化的对象不存在,则会引发错误。

此例程无法修改只读文档字符串,例如出现在新式类或内置函数中的文档字符串。由于此例程从不引发错误,调用者必须手动检查文档字符串是否已更改。

由于此函数从 C 语言字符串对象中获取 char * 并将其放入 obj 类型的 tp_doc 插槽中,因此它违反了多项 C API 最佳实践,具体如下:

  • 在调用 PyType_Ready 后修改 PyTypeObject

  • 对字符串对象调用 Py_INCREF 并丢失引用,因此字符串永远不会被释放

如果可能,应避免使用此函数。