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