【发布时间】:2012-04-28 22:31:40
【问题描述】:
据我了解C和C++的关系,后者本质上是前者的扩展,保留了一定程度的向后兼容性。假设可以使用 C++ 代码调用 python C API 是否安全?
更重要的是,我注意到官方 python 文档将 C 和 C++ 扩展捆绑在同一页面上。我在任何地方都找不到 C++ API。这让我相信同一个 API 在两种语言中都可以安全使用。
有人可以确认或否认这一点吗?
编辑:
我认为我的问题比它需要的复杂得多。问题是:我必须做什么才能用 C++ 编写 python 模块?我是否只是按照here 列出的相同指示,用 C 代码代替 C++?有单独的 API 吗?
【问题讨论】:
-
您应该能够从 C++ 调用 Python C API,但您将无法在 C++ 中编写 Python C 模块。
-
@DanD。我现在有点困惑,如果你看一下这个页面,docs.python.org/extending/extending.html,它处理的是用 C 或 C++ 扩展 python。我最初的问题可能有点令人费解,所以请允许我改写一下。如果我想用 C++ 编写一个 python 模块,我是否需要做与该页面上的内容不同的事情(除了使用 C++ 结构)?您的回复似乎表明这是不可能的,因此我感到困惑。
-
@DanD。请详细说明为什么?当然,由于名称修改,任何导出到 Python 的名称都必须在
extern "C" { }块中(当然,不能导出 C 无法处理的东西,比如重载),但我不知道有任何其他障碍.
标签: c++ python python-c-api python-c-extension