上QQ阅读APP看书,第一时间看更新
2.3.4 采用模块化编程方法
不难看出,我们的程序中出现了重复的操作,例如在选取鼠标所单击的图片块时,以及在判断图片块能否向上移动时,都涉及对pics列表的循环遍历操作,而且循环体中的代码逻辑也是完全一致的,仅仅是个别的数值不相同。目前仅仅针对向上的方向进行检查,如果再对其他三个方向进行检查,那么类似的代码还要重复编写三次。有没有办法来减少重复编写代码呢?办法当然是有的,可采用模块化的编程方法来解决这个问题。
说明:
所谓模块化编程方法,是指将程序的编写划分为多个模块进行,每个模块负责完成某一个特定的功能。这样做不仅能够提高程序的可读性,而且能够重复利用各个功能模块,从而有效地简化代码编写工作。对于具体的编程语言来说,模块化编程可以借助函数来实现,即把相同或类似的操作定义为函数,并为函数设置适当的参数来处理不同的数据。
对于我们的程序,可以定义一个函数get_pic(),用来获取某个方格中的图片块。同时为其设置两个参数,分别表示方格的水平和垂直索引值。
接下来改写之前编写的代码,将列表的循环遍历操作加入get_pic()函数中,代码如下所示:
可以看到,get_pic()函数会循环遍历pics列表,并返回满足条件的图片块。若所有图片块都不满足条件,则返回一个空白块(用None表示)。因此该函数不仅可用于获取鼠标单击的图片块,还可用来检查某个方格是否存在图片块。这就有效地避免了代码的重复编写。