Hi all, I'm extending C++ with Boost.Python. At some point I need to call a Python function on an object of unknown Python type. I found those 2 solutions, but they seem so simple that they make me wonder about the dangerosity of doing this (I'm a newbie to Boost.Python):
static void test_func_attr(object pyObj, object arg) { pyObj.attr("test")(arg); } BOOST_PYTHON_MODULE(my_module) { def("test_func_attr", &test_func_attr); } Called from : class MyClass(object): def test(self,str): print str class = MyClass() test_func_attr(class, "hello") The second solution is very close: static void test_func_attr(object pyObj, object arg) { object func = pyObj.attr("test"); call<void>(extract<PyObject*>(func), arg); } Both are working. Am I doing something wrong here? And which one is the best (advantage of #1 is that I don't need to know the return type of test()) Thanks in advance -David -- View this message in context: http://www.nabble.com/Calling-function-on-object-of-unknown-type-tp24570986p24570986.html Sent from the Python - c++-sig mailing list archive at Nabble.com. _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig