Python C API 中的复制和深度复制
copy and deepcopy in Python C API
如何为 C 扩展中定义的 Python 类型定义 copy
和 deepcopy
方法?
查看 documentation,这些方法似乎没有 tp_
插槽。
没有位置。您只需定义在 Python 中定义的相同方法,但在 C 中。(通常,这意味着实现 __reduce__
并获得默认的基于 __reduce__
的 copy.copy
和 copy.deepcopy
行为,但如果需要,您也可以实现 __copy__
和 __deepcopy__
。)
如何为 C 扩展中定义的 Python 类型定义 copy
和 deepcopy
方法?
查看 documentation,这些方法似乎没有 tp_
插槽。
没有位置。您只需定义在 Python 中定义的相同方法,但在 C 中。(通常,这意味着实现 __reduce__
并获得默认的基于 __reduce__
的 copy.copy
和 copy.deepcopy
行为,但如果需要,您也可以实现 __copy__
和 __deepcopy__
。)