项目篇:加入Python程序之如何在Python中使用C++?

项目篇:加速Python程序之如何在Python中使用C++?

通常像一些耗时的操作,我们期望在C++中去实现,然后使用Python去调用对应的接口,或者因为底层库的原因,需要支持对外的Python API,那么我们通常需要支持在Python中访问C++,如何实现呢?

方法比较多,本节以pybind11为例,引入一个完整的项目工程模版,如果你后续有这种需求,可以基于模版去修改。

注:(懒人版)本节的所有代码也都放在星球里面。

1.宏展开

假设:我们以比较耗时的排序为例,如果我们想在C++中写一个排序,然后在Python中去使用它,怎么去写呢?

C++程序是比较简单的,对外暴露一个接口里面做排序即可,例如:

std::vector sort_vector(const std::vector& input) {
  std::vector result = input;
  std::sort(result.begin(), result.end());
  return result;
}

那么问题来了,对于Pybind11来说,如何使用这个接口呢?

使用pybind11的宏即可定义一个模块,例如:

PYBIND11_MODULE(sort_mod

你可能感兴趣的:(python,c++,windows,开发语言)