如何通过添加SWIG(Python)新属性来扩展C++类?

2024-09-27 00:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个C++类,我需要通过添加一个新的私有属性来扩展。我还需要它不绑定到特定的类,所以我使用define。我试着用添加新方法的方法来做,但似乎没有任何效果:

%define add_new_attribute(cls)
  %extend MyClass {
         int new_attribute;
  };
%enddef

我不在乎新属性是私有的还是公共的,尽管我更希望它是私有的。文件也没有提到这一点。有别的办法吗?在

编辑:

不过,从方法实例化一个新的实例属性似乎没有问题。例如,这是可能的(它创建了一种迭代器,在实例上保持其状态):

^{pr2}$

但是,我确实需要这个代码在C++中,因为我需要引用一个指针:)。在


Tags: 文件实例方法addnew属性myclassattribute
1条回答
网友
1楼 · 发布于 2024-09-27 00:18:06

不知道为什么要使用%define。只需将其附加到swig接口文件中就可以了(我没有测试它的成员变量,但我已经将其用于成员函数定义):

 %extend MyClass {
         int new_attribute;
  }

注意最后一个分号是多余的。在

相关问题 更多 >

    热门问题