boost.python中没有

时间:2010-02-03 07:33:41

标签: c++ python boost

我正在尝试翻译以下代码

d = {}
d[0] = None

使用boost.python进入C ++

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

如何在boost.python中获取None对象?

2 个答案:

答案 0 :(得分:23)

没有boost::python::object的构造函数需要PyObject*(根据我的理解,如果将Python类型映射到C ++类型,那么像这样的ctor会使整个想法无效,因为PyObject *可能是任何东西)。根据{{​​3}}:

  

object();

     

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

答案 1 :(得分:2)

您可以使用:

d[0] = d.get(0)
如果您未指定默认值,则

d.get默认为None