Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复制Python对象类型,如PyInstance和PyFunction_Python_C++_Visual C++ - Fatal编程技术网

复制Python对象类型,如PyInstance和PyFunction

复制Python对象类型,如PyInstance和PyFunction,python,c++,visual-c++,Python,C++,Visual C++,我对Python C API的世界还不熟悉 我一直停留在涉及实例和函数对象类型的特定场景中。 我需要深度复制实例和函数对象类型 这里,pcoOriginalValue是PyObject*类型 PyObject* pcoInstanceCopy; if( true == PyInstance_Check(pcoOriginalValue)) { //I need to deep copy the contents of pcoOriginalValue to pcoInstanceCopy h

我对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.
}
任何参考资料或指针都会很好

谢谢

虽然您可以随时从C代码调用标准库函数,但您似乎希望自己实现实际的深度复制


我的评论很快(也很糟糕),您首先了解如何在纯Python中实现这一点,然后将代码转换为CPython C API调用。您可以使用作为起点。

使用copy.deepcopy。可能与@vz0重复,我使用的是Python C API。这在简单的python中是可能的。是的,我的意思是,您可以从C API模拟对“import-copy;copy.deepcopy”的调用。除非你想自己实现真正的深度复制。是的,我想自己实现深度复制。