Как добавить Python Wrap в уже обернутый класс C ++

У меня есть простой пользовательский класс StringList в C++, Базовым контейнером является std :: vector.

Было бы удобно при использовании этого класса в Python иметь StringList объект преобразуется в список Python всякий раз, когда возвращается обернутым объектом python.

Класс StringList содержит функцию, getContainer(), которые действительно возвращают ссылку на базовый vector<string> объект, и я думаю, что эта функция может быть использована как-то?

Например, код C ++

Raven aRaven;
StringList molecules;
molecules = aRaven.getMoleculesInDB();

заполняет объект молекул списком имен молекул (строк).

В Python это выглядит так, включая код для циклического перемещения по списку:

aRaven = Raven()
molecules = aRaven.getMoleculesInDB()

print 'There are ' + `molecules.count()` +' available.'
for mol in range(molecules.count()):
molName = molecules.at(mol)
...

Желательно вместо создания объекта StringList в aRaven.getMoleculesInDb () создавать список Python со строками (из базового контейнера std :: vector). Тогда пользователь мог написать

aRaven = Raven()
molecules = aRaven.getMoleculesInDB() # <--- Returns a Python list of strings

for molName in molecules:
print 'molName'
...

Любые указатели о том, как добиться этого в файле интерфейса Swig?

3

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]