这里是一个非常简单的C函数:SWIG:如何根据原始返回值对返回值进行键入映射?
bool GetSomething(string* result)
调用该函数后,返回的值应指示如果result
拥有所需要的信息,并且用户可以检查返回值相应地处理。
痛饮此功能在Python代码中使用,我用的是默认的typemaps.i
文件,然后改变了功能
bool GetSomething(string* OUTPUT)
这工作,但仍然繁琐。我不得不这样做是为了得到我想要的结果:
success, result = GetSomething()
if success:
# handle result
else:
# throw exception
理想情况下,我想有这样的接口,而不是:
result = GetSomething()
if result:
# handle result
任何帮助,将不胜感激。
你为什么不抛出一个异常,如果函数失败,所以你可以使用'string GetSomething()'。 – MasterMind 2014-09-04 15:20:47
@MasterMind这是一个免费的C++代码库,我不允许修改。 – yegle 2014-09-04 15:35:14
您不必在C++中抛出异常,就在SWIG包装器中,因此它变成了Python异常。 – 2014-09-05 02:33:54