擅长:python、mysql、java
<p>对于@jhoon的回答,SWIG似乎无法识别<em>std::string</em>返回类型,因此将函数更改为return<em>constchar*</em>。另外,由于它是类之外的函数,因此不能使用self,但必须使用SWIG的<em>$self</em>变量。在</p>
<p>因此,在SWIG<em>.i</em>文件中,如果您将以下内容放入:</p>
<pre><code>%extend OpenBabel::matrix3x3 {
const char* __str__() {
std::ostringstream out;
out << *$self;
return out.str().c_str();
}
};
</code></pre>
<p>在matrix3x3</em>上调用Python的print时,应该会得到所需的结果。在</p>
<p>如果您发现自己正在将其添加到许多类中,请考虑将其包装在一个宏中,如:</p>
^{pr2}$
<p>然后将其添加到类中:</p>
<pre><code>%extend OpenBabel::matrix3x3 {
__STR__()
};
</code></pre>