numpy.lib.add_newdoc#

lib.add_newdoc(place, obj, doc, warn_on_python=True)[原始碼]#

為現有物件新增文件,通常是 C 語言定義的物件

目的是允許更輕鬆地編輯 docstring,而無需重新編譯。這主要用於 NumPy 內部的用途。

參數:
placestr

要從中匯入模組的絕對名稱

objstr 或 None

要新增文件的物件名稱,通常是類別或函數名稱。

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

如果是字串,則是要套用至 obj 的文件

如果是元組,則第一個元素會被解釋為 obj 的屬性,第二個元素是要套用的 docstring - (方法, docstring)

如果是列表,則列表的每個元素都應該是長度為二的元組 - [(方法1, docstring1), (方法2, docstring2), ...]

warn_on_pythonbool

如果為 True(預設值),則當用於將文件附加到純 Python 物件時,發出 UserWarning

註解

如果無法寫入 docstring,此常式永遠不會引發錯誤,但如果被記錄的物件不存在,則會引發錯誤。

此常式無法修改唯讀 docstring,如新式類別或內建函數中出現的 docstring。由於此常式永遠不會引發錯誤,因此呼叫者必須手動檢查 docstring 是否已變更。

由於此函數從 C 語言層級的 str 物件抓取 char *,並將其放入 obj 類型的 tp_doc 插槽中,因此它違反了許多 C-API 最佳實務,原因如下:

  • 在呼叫 PyType_Ready 之後修改 PyTypeObject

  • 在 str 上呼叫 Py_INCREF 並遺失參考,因此 str 永遠不會被釋放

如果可能,應避免使用。