2

内置类型(例如 from PyLong_Typeto )的 python 转换器的 boost python 寄存器在哪里double

我想定义一个转换器,它可以numpy.float128从 python 中获取一个并返回一个long double用于 C++ 中的函数。我已经反其道而行之,即 to_python 转换器。为此我进行了调整builtin_converters.hpp,但我没有发现 boost python 是如何进行 from python 转换的。

4

2 回答 2

1

from python 转换实际上是在builtin_converters.cpp而不是在库的标题部分中完成的。我复制了这个文件并删除了除转换器之外的所有内容long double,然后我可以对其进行修改。

于 2012-11-13T15:48:32.243 回答
0

我将添加到这个答案中,尽管问题略有不同:

如何将 Python 类型对象(PyTypeObject例如PyLong_TypePyBool_TypePyUnicode_Type等)转换为boost::python::object

似乎这工作正常:

namespace bp = boost::python;

bp::object float_Type = bp::borrowed(
                            bp::downcast<PyTypeObject>(&PyFloat_Type))));

结果是您可以通过 Boost Python 对象向 Python 公开实际类型对象。

于 2017-02-20T22:29:15.617 回答