Cython:不公开部分实现

时间:2017-06-08 19:08:17

标签: python c++ cython

我正在为C ++中的某些代码制作一个cython集成模型,我有以下问题:

我可以选择不公开内部实现的部分内容吗?

例如:

myclass.hpp

class MyClass {
  private:
   foo _bar;
  public:
   do_stuff();
};

我选择故意从cython模块中省略_bar,因为它是实现的内部

myclass.pyx

cdef extern from "myclass.hpp":
    cdef cppclass MyClass:
        cdef public void do_stuff()

1 个答案:

答案 0 :(得分:1)

是的,您可以省略实施细节。

您的Cython代码执行两项操作

  1. 它包括" myclass.hpp"这样C ++编译器就可以访问必要的实现细节。
  2. 告诉Cython您要使用的具体方法,属性或子类(等等)(在您的情况下为do_stuff)。不告诉Cython方法/细节的唯一结果是你无法直接从Cython访问它。