numpy.lib.add_newdoc#
- lib.add_newdoc(place, obj, doc, warn_on_python=True)[源代码]#
将文档添加到现有对象,通常是在 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-level str 对象中获取
char *并将其放入 obj 类型的tp_doc插槽中,因此它违反了许多 C-API 最佳实践,具体如下:在调用 PyType_Ready 之后修改 PyTypeObject
在 str 上调用 Py_INCREF 并丢失引用,因此 str 将永远不会被释放
如果可能的话,应该避免这种情况.