复制Python对象类型如PyInstance和PyFunction
我刚接触Python的C API。
我在一个特定的场景中遇到了问题,涉及到实例和函数对象的类型。我需要对这两个类型进行深拷贝。
这里,pcoOriginalValue的类型是PyObject*。
PyObject* pcoInstanceCopy;
if( true == PyInstance_Check(pcoOriginalValue))
{
//I need to deep copy the contents of pcoOriginalValue to pcoInstanceCopy here.
}
同样的情况也适用于,
PyObject* pcoFunctionCopy;
if( true == PyFunction_Check(pcoOriginalValue))
{
//I need to deep copy the contents of pcoOriginalValue to pcoFunctionCopy here.
}
如果有任何参考资料或指针,那就太好了。
谢谢
1 个回答
0
虽然你可以随时在你的C代码中调用copy.deepcopy这个标准库函数,但看起来你想自己实现深拷贝。
我简单(可能不太准确)地说,你首先需要了解如何在纯Python中做到这一点,然后再把你的代码转换成CPython的C API调用。你可以把当前的copy.deepcopy实现作为一个起点。