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

Reply via email to