foo = Function('opaque::new_C', 'opaque.h') set_policy(foo, return_value_policy(return_opaque_pointer)) foo = Function('opaque::new_C_zero', 'opaque.h') set_policy(foo, return_value_policy(return_opaque_pointer)) Function('opaque::get', 'opaque.h' ) A = Class('opaque::A', 'opaque.h') set_policy(A.new_handle, return_value_policy(return_opaque_pointer))