Thanks everyone for the answers. The dispatcher() is actually sits in C++ code.
So my code receives an object that is an instance of the base class, it PyObject_GetAttrString(py_obj, 'funcname'). If the attribute exists I will call PyObject_CallMethod on it. If the base defines the method and it was empty, then my C++ code would still call the function. This is not optimal because I don't want to go from C++ to Python if the _derived_ class does not implement the cb. Now the base class should define it so that doc parsers properly describe the base class. The recipe suggested is not worth the trouble. Unfortunately I cannot use abc module since I use Python 2.5 -- http://mail.python.org/mailman/listinfo/python-list