最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Python:海龟绘图(八)——接口设计

Python 少儿编程 2096浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

在这次课前导部分的分析中,我们已经认识到了上节课中我们代码的“问题所在”,现在,我们就来解决这个问题。

我们再来看看那个我们“引以为傲”的函数(如下图),其最大的优点就是“非常智能”——只要告诉它画几条边,它就能毫不犹豫的画出大小合适的正多边形。

Python:海龟绘图(八)——接口设计

然而,说到这个函数的缺点嘛,那就是“太智能”——以至于我们只能决定正多边形的“边数”,而对其他的细节“无能为力”,比如说“边长”。我们无法通过设置正多边形的边长来决定画“多大的”正多边形,这样的函数用起来固然“省事”,但其“局限性”也是非常明显的。

为了使用户获得该函数更多的“控制权”,我们将函数稍加改变,在“函数定义”时增加一个参数“length”(边长),并把绘制每条边的长度由“程序自动计算”改为我们指定的边长“length”,如下图:

Python:海龟绘图(八)——接口设计

 

这个函数可以保证我们画出“指定边长的正多边形”。那有人说“如果用户把边长设置的太长,海龟就会画到画布外面去!”确实会存在这个风险,但这不是程序的错,我们把这个责任推给了“用户”——既然您想要关于正多边形更多的“话语权”,您就得对这个多边形负起更多的责任。权利与义务永远都是统一的!

现在,我们可以用这个新的“绘制正多边形函数”,来完成我们上节课的神奇图形了。我们将正N边形的“边长”统一设置为“40”,得到完整的代码如下图:

Python:海龟绘图(八)——接口设计

按“F5”键运行,您是否也得到下图中期盼已久的结果了呢?

Python:海龟绘图(八)——接口设计

通过对上次课的作业所做的深入分析,我们总结出了对于一个“绘制正多边形”程序来说最适合的参数——“边数”和“边长”。

我们这节课的主题叫“接口设计”。其实函数的所谓“接口”,就是“需要给函数提供哪些参数,以及函数返回什么值”。

海龟绘图这部分的函数不需要返回任何值,所以编写这类函数时,只要把用户需要给函数提供哪些参数设计好即可。

参数的“个数”也是很有讲究的——太少了不行,不便于用户控制函数的“行为”,就像我们之前那个“过于智能”的绘制正多边形的函数一样;太多了也不行,会给用户压上过重的负担,使用户“无所适从、苦不堪言”。

接下来,我们就设计一个“画圆”的函数,来说明“设计不当的过多参数”有何危害。

如果让您设计一个“画圆”的函数,您觉得哪些参数是必要的、哪些参数又是多余的呢?

提示:“圆”可以用边长较短、边数较多的正多边形来近似。

项目小结:

在今天的项目中,我们:

  1. 认识到了“老版本”的“绘制正多边形”程序的“问题所在”

  2. 了解了“接口”的概念;

  3. 明白了定义函数参数时,“参数过少”的缺点;

  4. 学会了如何修改“绘制正多边形”程序的“接口”,使其能画出正确的嵌套图形

您必须 登录 才能发表评论!