2010-02-03 51 views
12

我试图用Boost.Python的翻译下面的代码没有在Boost.Python的

d = {} 
d[0] = None 

到C++

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

我怎样才能在Boost.Python的一个无对象?

回答

18

没有的boost::python::object构造函数一个PyObject*(从我的理解,这样的一个构造函数将无效的整个想法,如果映射的Python类型和C++类,无论如何,因为*的PyObject可以是任何东西)。根据documentation

object();

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

2

你可以使用:

d[0] = d.get(0) 

d.get默认为None,如果你不指定一个默认值。