首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SWIG中创建满足接口的python类?

如何在SWIG中创建满足接口的python类?
EN

Stack Overflow用户
提问于 2018-08-02 04:27:51
回答 1查看 236关注 0票数 2

我想用Python语言创建一个对象,使用SWIG将C++实例sastifies。

假设我有一个像Example.h这样的例子

代码语言:javascript
复制
struct iCat
{
    virtual int paws() const = 0;
};

int pawGiver(const iCat& cat);

struct cat : public iCat
{
    int paws() const
    {
        return 4;
    }
};

Example.cpp

代码语言:javascript
复制
#include "Example.h"
int pawGiver(const iCat& cat)
{
    return cat.paws();
}

example.i

代码语言:javascript
复制
/* File : example.i */
%module example
%{
#include "Example.h"
%}
%include "Example.h"

当然,上面的代码可以很好地编译。我写了下面的代码,试图用Python语言做一个iCat,即:

代码语言:javascript
复制
import example;
class pyCat(example.iCat):
     def __init__(self):
             super().__init__()
     def paws(self):
             return 3;

z = pyCat()
example.pawGiver(z)

我想要做的事情有可能实现吗?Python类可以实现C++实例吗?我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-02 05:03:05

很简单。将接口修改为:

代码语言:javascript
复制
/* File : example.i */
%module(directors="1") example
%{
#include "Example.h"
%}
%feature("director");
%include "Example.h"

运行正常。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51641780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档