我的C ++代码有这样的东西:
struct Data
{
CustomType member;
};
我的swig .i文件包含%typemap(in)和%typemap(out),用于将Python字符串转换为CustomType(这适用于参数和返回值)
在我的python中,我这样做:
d = Data()
d.member = "Hello"
python在运行时给出了这个错误: TypeError:在方法' Data_member_set'中,类型' CustomType *'
的参数2我尝试以下操作无效:
%typemap(memberin) CustomType
{
$target = *$source;
}
如何允许python让我分配给该成员?
答案 0 :(得分:0)
如果可以从字符串创建CustomType
,您应该可以
d.member = CustomType("Hello")
如果失败,那么你没有通过.i文件导出CustomType
,或者它没有带字符串的构造函数。
答案 1 :(得分:0)
你需要写这样的东西:
$_hasItems = ($_item->getCount() > 0);
if(!$_hasItems) continue;
这意味着以下内容:
我建议您打开* _pywrap.cxx文件(该文件由SWIG生成)并根据您的' typemap'检查它实际生成的内容。
有关详细信息,请参阅官方文档:http://www.swig.org/Doc1.3/SWIGDocumentation.html