У меня есть простой пользовательский класс 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?
Задача ещё не решена.