Boost.Python中的None

17 投票
2 回答
7807 浏览
提问于 2025-04-15 18:49

我正在尝试把下面的代码

d = {}
d[0] = None

转换成使用boost.python的C++代码。

boost::python::dict d;
d[0] = ?None

我该如何在boost.python中获取一个None对象呢?

2 个回答

3

你可以使用:

d[0] = d.get(0)

d.get 如果你没有指定默认值,它会默认返回 None

27

没有一个构造函数可以直接接受一个 PyObject* 类型的参数(根据我的理解,如果有这样的构造函数,那就完全违背了将Python类型映射到C++类型的想法,因为 PyObject* 可以是任何东西)。根据文档

object();

效果:构造一个对象,用来管理对Python中的 None 对象的引用。

撰写回答