2024-10-01 22:44:28 发布
网友
对于内置类型,比如从PyLong_Type到{},boost python从python转换器注册到哪里?在
PyLong_Type
我想定义一个转换器,它可以从Python中取一个^ {< CD3>},并返回C++中函数的^ {< CD4>}。我已经用另一种方法做了,to-hupython转换器。为此,我对builtin_converters.hpp进行了调整,但我没有发现boostpython如何进行从python的转换。在
builtin_converters.hpp
我要补充一下这个答案,不过对于一个稍微不同的问题:
如何将Python类型的对象(即PyTypeObject,如PyLong_Type,PyBool_Type,PyUnicode_Type等)转换为boost::python::object?
PyTypeObject
PyBool_Type
PyUnicode_Type
boost::python::object
似乎这很好:
namespace bp = boost::python; bp::object float_Type = bp::borrowed( bp::downcast<PyTypeObject>(&PyFloat_Type))));
结果是,您可以通过boostpython对象向Python公开实际类型对象。在
实际上,from python转换是在builtin_converters.cpp中完成的,而不是在库的头部分。我复制了这个文件并删除了除了long double的转换器之外的所有内容,然后我可以对其进行修改。在
builtin_converters.cpp
long double
我要补充一下这个答案,不过对于一个稍微不同的问题:
如何将Python类型的对象(即
PyTypeObject
,如PyLong_Type
,PyBool_Type
,PyUnicode_Type
等)转换为boost::python::object
?似乎这很好:
结果是,您可以通过boostpython对象向Python公开实际类型对象。在
实际上,from python转换是在
builtin_converters.cpp
中完成的,而不是在库的头部分。我复制了这个文件并删除了除了long double
的转换器之外的所有内容,然后我可以对其进行修改。在相关问题 更多 >
编程相关推荐