我需要将下面的示例从cpp包装到cython,以便在Python中使用
class Foo1 : public MFoo<unsigned int> {
public:
constexpr Foo1(unsigned int val) : MFoo{val} {}
}
};
class Foo{
public:
static constexpr Foo1 any {0};
static constexpr Foo1 one {1<<1};
static constexpr Foo1 two {1<<2};
};
这就是我目前所拥有的 文件.pxd在
^{pr2}$我的文件.pyx在
def Bar(self,PyFoo1 abc)
return file.Bar(######) # how would I call something like Foo::one
我要知道怎么用cython包装这个。我正在使用How to expose a constexpr to Cython? 这是相似的,但仍然不是很有用
constexpr
是不相关的-Cython不需要知道它。在我创建了一个最小的示例,它稍微简化了您的示例(例如,它省略了您没有为其提供定义的无关模板类):
在赛顿:
^{pr2}$ <>注意,在^ {< CD5>}内,我不将^ ^我想还有第二个问题是如何从Python调用
bar
。显然有许多选项,但是一个简单的方法是传递一个字符串,并有一个Cython函数,它将字符串与C++值匹配:这不是创建Python接口的唯一解决方案—例如,您可以创建一个包含
C
的包装器类,并将其实例称为any
,one
,two
。在相关问题 更多 >
编程相关推荐