Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

None in boost.python

Tags:

c++

python

boost

I am trying to translate the following code

d = {}
d[0] = None

into C++ with boost.python

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

How can I get a None object in boost.python?

like image 931
D R Avatar asked Feb 03 '10 07:02

D R


2 Answers

There is no constructor of boost::python::object that takes a PyObject* (from my understanding, a ctor like that would invalidate the whole idea if mapping Python types to C++ types anyway, because the PyObject* could be anything). According to the documentation:

object();

Effects: Constructs an object managing a reference to the Python None object.

like image 103
Torsten Marek Avatar answered Sep 19 '22 14:09

Torsten Marek


You could use:

d[0] = d.get(0)

d.get defaults to None if you don't specify a default value.

like image 26
wisty Avatar answered Sep 17 '22 14:09

wisty