python编程代码是什么意思_抽象在编程中是什么意思?

抽象是计算机科学的核心概念。如果没有抽象,我们仍然会用机器代码进行编程,或者更糟的是,首先没有计算机。所以这是个很好的问题。

什么是抽象

抽象化意味着给事物命名,这样名称就捕获了函数或整个程序的核心功能。

你参考的书中有一个例子,上面说Suppose we’re working with turtles, and a common operation we need is

to draw squares. “Draw a square” is an abstraction, or a mental chunk,

of a number of smaller steps. So let’s write a function to capture the

pattern of this “building block”:

暂时忘掉乌龟,想想画一个正方形。如果我告诉你在纸上画一个正方形,你马上就会知道该怎么做了:绘制正方形=>绘制所有边长度相同的矩形。

你可以不用再问了,因为你心里清楚什么是a平方,而不用我一步一步地告诉你。这里,square这个词是“画一个所有边都一样长的矩形”的抽象。

抽象深入

但是等等,你怎么知道矩形是什么?好吧,这是下面的另一个抽象:矩形=>绘制两条相互平行、长度相同的线,然后添加另两条垂直于其他两条线的平行线,这两条线的长度相同,但可能与前两条线的长度不同。

当然,它是在-行,并行,垂直,连接都是著名概念的抽象。

现在,想象一下每次你想画一个矩形或正方形,你必须给出一个矩形的完整定义,或者解释直线、平行线、垂直线和连接线——这样做要花太长的时间。

抽象的真正力量

这是抽象的第一种力量:它们使谈话和做事变得容易得多。

抽象的第二种能力来自于可组合性的良好特性:一旦定义了抽象,就可以组合两个或多个抽象来形成一个新的、更大的抽象:假设你厌倦了绘制正方形,但你真的想绘制一个房子。假设我们已经定义了三角形,那么我们可以定义:house=>画一个带三角形的正方形

接下来,你想要一个村庄:village=>彼此相邻绘制多个房屋

哦,等等,我们想要一个城市——我们有了一个新的概念:街道城市将许多村庄相距较近,用更多的房屋填满空旷的空间,但为街道留出空间

street=>(街道的一些定义)

等等。。。

这一切如何适用于编程?

如果在规划你的程序(一个称为分析和设计的过程)的过程中,你发现你试图解决的问题有很好的抽象性,你的程序就会变得更短,因此更容易编写,也许更重要的是更容易阅读。这样做的方法是尝试并掌握定义你的问题的主要概念——如在绘制一个房子的(简化)示例中,这是正方形和三角形,绘制一个村庄它是房子。

在编程中,我们将抽象定义为函数(以及一些其他构造,如类和模块,但现在让我们集中讨论函数)。函数本质上是一组单独的语句,因此函数本质上是一个抽象——有关详细信息,请参阅本书中的示例。

这一切的美丽

在编程中,抽象可以提高或降低生产率。这就是为什么通常情况下,常用函数被收集到库中,供其他人重用。这意味着您不必担心细节,只需要了解如何使用现成的抽象。显然,这会让你的工作更轻松,因此你可以更快地工作,从而提高工作效率:

示例:

想象一下,有一个名为“nicepic”的图形库,其中包含上述所有抽象的预定义函数:矩形、正方形、三角形、房屋、村庄。

假设你想根据上面的抽象来创建一个程序来描绘一个漂亮的房子,你所要写的就是:import nicepic

draw_house()

所以这只是两行代码,可以得到更详细的内容。那不是很好吗?

希望这有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值