手记

Python语言程序---代码复用与函数递归(一)

Python语言程序---代码复用与函数递归

1 代码复用

我们可以把编写的代码当做一种资源,并且对这种资源进一步抽象,实现代码的资源化和抽象化。代码资源化指的是程序代码本身也是一种表达计算的资源,代码抽象化指的是使用函数等方法对代码赋予更高级别的定义。

对同一份代码在需要时被重复使用就构成了代码复用,而代码复用是需要将代码进行抽象才能达到的效果。

在不同的程序设计语言中,都有代码复用的相关功能。一般来说,我们使用函数和对象这两种方法来实现代码复用。可以认为这两种方法是实现代码复用的方法,也可以认为这两种方法是对代码进行抽象的不同级别。

函数能够命名一段代码,在代码层面建立初步抽象,但这种抽象级别比较低,因为它只是将代码变成了一个功能组。

对象通过属性和方法,能够将一组变量甚至一组函数进一步进行抽象。

2 模块化设计

在代码复用的基础上,我们可以开展模块化设计。模块化设计是基于一种逻辑的设计思维,它的含义是通过封装函数或对象将程序划分为模块以及模块之间的表达。

对于要实现的算法,如果设定了功能模块并且在功能模块之间建立关系,那么一个程序就能够被表达清楚。

在模块化设计的思想中,需要关注一个程序的主程序、子程序和子程序之间的关系。

我们一般将子程序看做模块,主程序看做模块与模块之间的关系。可以认为模块化设计是一种分而治之、分层抽象、体系化的设计思想。

模块化设计有两个基本概念:紧耦合和松耦合。

紧耦合是指两个部分之间交流很多,无法独立存在,那么这两个部分就是紧耦合;松耦合指的是两个部分之间交流很少,它们之间有非常清晰简单的接口,可以独立存在,这就是松耦合。

一般编写程序时,通过函数来将一段代码与代码的其他部分分开,那么函数的输入参数和返回值就是这段函数与其他代码之间的交流通道,这样的交流通道越少越清晰,那么定义的函数复用可能性就越高。

所以在模块化设计过程中,对于模块内部,也就是函数内部,近可能的紧耦合,它们之间通过局部变量可以进行大量的数据传输。

但是在模块之间,也就是函数与函数之间要尽可能减少它们的传递参数和返回值,让它们之间以松耦合的形式进行组织,这样每一个函数才有可能被更多的函数调用,它的代码才能更多的被复用。



 

 

0人推荐
随时随地看视频
慕课网APP