我在C++
中有一个简单的用户定义的StringList类。它的底层容器是std :: vector。
在python中使用这个类时,只要python包装对象返回,就可以将任何StringList
对象转换为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)
...
最好不要在aRaven.getMoleculesInDb()中创建一个StringList对象,而是创建一个带有字符串的Python列表(来自底层的std :: vector容器)。然后用户可以写
aRaven = Raven()
molecules = aRaven.getMoleculesInDB() # <--- Returns a Python list of strings
for molName in molecules:
print 'molName'
...
有关如何在swig接口文件中实现此目的的任何指示?