1

boost::python::extract<> を使用して、boost::python::list の項目を float に変換しています。私の問題は python の int にあります - extract<float>int->float を有効な変換と見なしているようですが、真の float オブジェクトのみが必要です。extract<> をより保守的にする方法はありますか?

extract<float> value(o);
if (value.check()) {
  // This is true both for floats and ints
  a = value();
}
4

1 に答える 1

1

extract<float>整数を浮動小数点数に変換しないように言うことはできないと確信しています。

あなたができることは、ラップされたものを照会することですPyObject:

const PyObject* pyo = o.ptr();
if (PyFloat_Check(pyo))
{
    // True only for floats.
    a = extract<float>(o);
}
于 2010-10-05T08:46:28.030 に答える