2017-06-08 162 views
-2

我在做一个用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() 
+0

你是否遇到过这样的特殊问题? –

+0

我仍然试图编译这个简单的例子,所以我不确定。 cython文档对我来说非常混乱。 –

+0

所以如果你有任何问题编译,请在你的问题中明确提到这些。理想的是[MCVE]。 –

回答

1

是的,你可以省略执行de尾巴。

你用Cython代码做了两件事

  1. 它包括“myclass.hpp”,使C​​ ++编译器可以访问必要的实施细则。
  2. 它告诉Cython您想要使用的具体方法,属性或子类(等等)(在您的案例中为do_stuff)。不告诉Cython一种方法/细节的唯一后果是你不能直接从Cython访问它。