Oh! Sorry... boost::python::list can accept "MyRegion" arguments directly!! @_@ boost::python::list list_obj; MyRegion rgn(..); class_<MyRegion>.def()....; list_obj.append(rgn); // It is OK! My question changes to how does boost python wrap rgn into a pyObject when appending to a python list? --- ShenLei