Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
如何保存一个C++;python中的指针,以便稍后再次传递它?_Python_C++_Cython - Fatal编程技术网

如何保存一个C++;python中的指针,以便稍后再次传递它?

如何保存一个C++;python中的指针,以便稍后再次传递它?,python,c++,cython,Python,C++,Cython,我试图创造一些东西,但我不知道这是否可能或“干净”: 从python调用函数C++中的函数a来计算复杂的 C++代码只返回指向Python 的指针 用python做其他事情 < Python >调用C++函数的函数B,它将指针和其他事物作为参数。 我不需要在Python算法中使用复杂的C++类,这就是为什么我只想在Python中保存指针。 有人对如何做到这一点有什么建议吗 编辑:最后我用Python包了C++类,谢谢大家。 < p>指针就是可以封送并发送给任何东西的数据。然而,这是一个非常糟糕

我试图创造一些东西,但我不知道这是否可能或“干净”:

从python调用函数C++中的函数a来计算复杂的 C++代码只返回指向Python 的指针
  • 用python做其他事情
  • < Python >调用C++函数的函数B,它将指针和其他事物作为参数。

    我不需要在Python算法中使用复杂的C++类,这就是为什么我只想在Python中保存指针。 有人对如何做到这一点有什么建议吗


    编辑:最后我用Python包了C++类,谢谢大家。

    < p>指针就是可以封送并发送给任何东西的数据。然而,这是一个非常糟糕的想法,因为在这样做时,您必须确保只要python部分有指针,指针就仍然有效。无法检查指针是否仍然有效,因此取消引用从外部方收到的指针可能会使程序崩溃


    在很多情况下,更好的办法是向表发送一个键。当该键被发回时,它可以用来从该表中获取所需的信息,并且可以在该表不再具有该键时进行处理。对于表,最容易使用
    std::map
    。当然,可以将指针存储在容器中并检查,但是字符串或数字更容易调试。

    < P>最好在C++中创建一个类,并将该指针存储在类本身中作为私有。然后创建函数调用来访问这些指针


    实现该类后,生成lib的.so文件并将其导入python。这样,你可以在Python中简单地使用C++代码,也不必保存指针。

    “指针”应该只是一个不透明的处理程序,Python端。对于那个指针的意义,C++代码无论如何都必须保留相关的数据。Python代码知道这些数据驻留在哪里有什么用?也许你没有告诉我们整个故事。谢谢你,我想这就是为什么我在返回一个空*时会出现seg错误的原因。如果我正确理解这个表的思想,C++上有一个映射,我可以把我的特定对象的索引返回到Python。但是我如何使映射在C++函数中保持不变?我在考虑用C++编写一个类,但是无论如何,你可能甚至不需要指针或键:但是如果其他所有的都失败了,那么你总是可以使用文件范围的全局变量。请注意,我还没有使用Cython,我们倾向于通过某些协议在C++和Python之间通信,所以我的答案可能会不那么有用。谁拿着桌子?