cdef extern from "cpp_file.hpp":
void modifyMyClass(MyClass)
cdef public class MyClass [object TheNameThisWillHaveInC, type TheNameTheTypeWillHaveInC]:
cdef int a
cdef int b
def example():
cdef MyClass a = MyClass()
modifyMyClass(a)
注意“public class MyClass”。您还需要指定两个名称:一个用于表示MyClass的结构名称,另一个用于类型对象的名称。在
答案是使用"public extension types"(特别是“公共扩展类型”)。在
一个简单的例子是:
注意“
public class MyClass
”。您还需要指定两个名称:一个用于表示MyClass
的结构名称,另一个用于类型对象的名称。在在上面运行Cython会生成一个包含以下内容的头文件(我只复制了有趣的部分)。在
^{pr2}$ <>你只需在C++代码中包含那个头文件。我给出的示例函数在C++中如下: 我不认为你使用C++而不是C的事实改变了很多。你唯一需要做的就是在C++模式下运行Cython(在{{CD3}}中指定语言,以避免命名问题。在相关问题 更多 >
编程相关推荐