2017-06-08 157 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訪問它。