Я использую swig для генерации привязок Python к YaST .Я добавляю функции в родительский класс с именем YCPValue через% extends.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 и т. Д.).Здесь также задействованы дополнительные дочерние классы, это только один пример.