抽象可节省人力,但实际上还有个更重要的优点:抽象是程序能够被人理解的关键所在(无论对编写程序还是阅读程序来说,这都至关重要)。计算机本身喜欢具体而明确的指令,但人通常不是这样的。例如,如果你向人打听怎么去电影院,就不希望对方回答:“向前走10步,向左转90度,接着走5步,再向右转45度,然后走123步。”听到这样的回答,你肯定一头雾水。
如果对方回答:“沿这条街往前走,看到过街天桥后走到马路对面,电影院就在你左边。”你肯定能明白。这里的关键是你知道如何沿街往前走,也知道如何过天桥,因此不需要有关这些方面的具体说明。
组织计算机程序时,你也采取类似的方式。程序应非常抽象,如下载网页、计算使用频率、打印每个单词的使用频率。这很容易理解。下面就将前述简单描述转换为一个Python程序。
page = download_page()
freqs = compute_frequencies(page)
for word, freq in freqs:
print(word, freq)
看到这些代码,任何人都知道这个程序是做什么的。然而,至于这些操作的具体细节,将在其他地方(独立的函数定义)中给出。