如何防止boost :: python :: extract <float>接受int </float>

时间:2010-10-05 07:07:53

标签: python boost-python

我正在使用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();
}

1 个答案:

答案 0 :(得分:1)

我很确定你不能告诉extract<float>不要将整数转换成浮点数。

您可以做的是查询已包装的PyObject

const PyObject* pyo = o.ptr();
if (PyFloat_Check(pyo))
{
    // True only for floats.
    a = extract<float>(o);
}