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)
如果是一个列表,则列表的每个元素都应该是一个长度为二的元组 -
[(method1, docstring1), (method2, docstring2), ...]
- warn_on_pythonbool
如果为 True(默认值),则如果将其用于向纯 Python 对象附加文档,则发出 UserWarning。
注释
如果无法写入文档字符串,此例程永远不会引发错误,但如果要记录的对象不存在,则会引发错误。
此例程无法修改只读文档字符串,例如在新式类或内置函数中出现的那些。由于此例程永远不会引发错误,因此调用者必须手动检查文档字符串是否已更改。
由于此函数从 c 级 str 对象中获取
char *
并将其放入 obj 类型 的tp_doc
插槽中,因此它违反了若干 C-API 最佳实践,方法是:在调用 PyType_Ready 后修改 PyTypeObject
调用 Py_INCREF 来引用 str 并丢失引用,因此 str 将永远不会被释放
如果可能,应避免使用它。