我是一个老计时器,用Fortran,C,C ++,Perl等编程 Java多年来,并试图学习这种新奇的Python语言。
我有一个小程序,使用PIL创建图像,绘制一些 基元(矩形,椭圆等......)并将其保存到PNG。工作良好... 没问题。
我在过去发现,“真正学习”语言的最佳途径 是“偷看引擎盖”并理解机制(双关语意图!)......我以为我在制作 进展......但是在查看PIL库时看看发生了什么 在幕后,我在 ImageDraw.py 中找到了以下代码
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)
if ink is not None:
self.draw.draw_ellipse(xy, ink, 0)
所以, ellipse()调用方法 self.draw.draw_ellipse()好的,好的...... 但是哪里定义了 draw_ellipse(...)?那里发生了什么魔力? 我已经搜索了整个PIL目录树(甚至是整个python树......),并且 ellipse() draw_ellipse 的地方>方法定义......我甚至尝试在调试器中单步执行它,而且我仍然“喋喋不休”:-)至于发生了什么事情。
我错过了什么?
谢谢!