Greg Tibbet <gtibbe...@msn.com> writes: >I'm an old timer, have programmed in Fortran, C, C++, Perl, and a bit >of Java and trying to learn this new-fangled Python language!
Which actually is older than Java. >def ellipse(self, xy, fill=None, outline=None): > """Draw an ellipse.""" > ink, fill = self._getink(outline, fill) > if fill is not None: > self.draw.draw_ellipse(xy, fill, 1) ><...snipped...> >ellipse() uses the method self.draw.draw_ellipse() Okay, fine... >but WHERE is draw_ellipse defined?? What magic is happening there? Depends on the nature of â»selfâ«. Usually, the answer would be that it's defined in a superclass. But with Python, one could also decrypt a string and then feed the result to â»execâ« to dynamically add methods to an object whose source code is well hidden. Looking into the matter, it turns out, however, ... â»_draw_ellipseâ« is defined in the language C in the file â»_imaging.câ« and then mapped to â»draw_ellipseâ« via PyMethodDef which is part of Python's C API.
-- https://mail.python.org/mailman/listinfo/python-list