我使用swig生成到YaST的python绑定。 我正在通过%extend向名为YCPValue的父类添加函数。 Swig还将这些父类函数添加到子类(例如YCPCode)。我不希望那些父类函数在子类中,所以我使用%ignore忽略每个函数。但swig仍然包含我%忽略的函数。这是因为父类上的扩展百分比吗?有没有人知道有没有办法从孩子身上排除这些功能?你知道吗
%include <ycp/YCPValue.h>
%extend YCPValue {
bool isCode() {
return (*($self))->isCode();
}
YCPCode asCode() {
return (*($self))->asCode();
}
}
%include <ycp/YCPCode.h>
%ignore YCPCode::isCode();
%ignore YCPCode::asCode();
这里的想法是,可能会返回一个YCPValue类型,然后必须使用isCode()函数来查看它是什么,并使用asCode()将类型作为YCPCode对象返回。但是,如果返回的是YCPCode对象,那么我不希望有这些额外的函数(因为它会弄乱pydocs等)。这里也涉及到更多的儿童课程,这只是一个例子。你知道吗
你能做的是
这不是最优雅的解决方案,但我在前面使用了这些重载来过滤掉不打算调用的函数。你知道吗
相关问题 更多 >
编程相关推荐