我正在使用boost :: python :: extract&lt;&gt;将boost :: python :: list中的项转换为浮点数。我的问题是在python中使用int - extract<float>
似乎将int-&gt; float视为有效转换,但我只想要真正的float对象。有没有办法强制提取&lt;&gt;更保守一点?
extract<float> value(o);
if (value.check()) {
// This is true both for floats and ints
a = value();
}
答案 0 :(得分:1)
我很确定你不能告诉extract<float>
不要将整数转换成浮点数。
您可以做的是查询已包装的PyObject
:
const PyObject* pyo = o.ptr();
if (PyFloat_Check(pyo))
{
// True only for floats.
a = extract<float>(o);
}