numpy.lib.add_newdoc#

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

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

目的是允许更容易地编辑文档字符串,而无需重新编译。这主要用于 NumPy 本身内部使用。

参数:
placestr

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

objstr 或 None

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

doc{str, Tuple[str, str], List[Tuple[str, str]]}

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

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

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

warn_on_pythonbool

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

备注

如果无法写入文档字符串,此例程永远不会引发错误,但如果要记录的对象不存在,则会引发错误。

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

由于此函数从 c 级别 str 对象中获取 char * 并将其放入 obj 类型 的 tp_doc 槽中,因此违反了许多 C-API 最佳实践,因为

  • 在调用 PyType_Ready 后修改 PyTypeObject

  • 对 str 调用 Py_INCREF 并丢失引用,因此 str 永远不会被释放

如果可能,应避免使用它。