首页 > 解决方案 > 如何在 python 中保存 C++ 指针以便稍后再次传递?

问题描述

我正在尝试创造一些东西,但我不知道它是否可能或“干净”:

  1. 从 python,调用我的 C++ 代码的函数 A 来计算一些复杂的东西
  2. C++ 代码只返回指向 python 的指针
  3. 在python中做其他事情......
  4. 从 python,调用我的 C++ 代码的函数 B,它将指针和其他东西作为参数。

我真的不需要在我的 Python 算法中使用我复杂的 C++ 类,这就是为什么我只想将指针保存在 python 中。

有人对如何做到这一点有任何建议吗?

编辑:最后我用python包装了c++类,谢谢大家。

标签: pythonc++cython

解决方案


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

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


推荐阅读