类和对象

类和对象视频里讲的知识点很多,也很杂,教程里做了些许整理,看接下去用几个帖子能不能把知识点厘清一下

虽然讲类和对象用狮子打得比方,但帖子还是用梨园的照片哈,粉面朱唇,太美了!看不够听不够~~~

用类和对象能更好的模拟和描述现实世界,更好的模拟问题,才能更好滴实践问题的解决方案

在现实世界中一说到狮子,狮子身上的很多标签就会跃入脑海,比如猛兽、食肉、群居、生活在非洲大草原……

武侠小说里的金毛狮王谢逊的狮吼功,据说能把对手震得天旋地转、头昏眼花继而倒地不起,虽然小说夸张了点但那也说明了狮子很会吼,狮吼的震慑力很强;狮子当然也得很能跑,不然猎物羚羊跑那么快,抓不着饿肚子可是不好玩哒;狮子是哺乳动物,会自己抚养幼兽的……

这些特点和行为是狮子这个群体共有的,是对狮子这个群体整体的概念和印象。class的概念就好比这个抽象的狮子类别(不具体到某一头狮子),而狮子的那些特征(如群居、生活在非洲大草原、食肉)可类比类的属性attribute;狮子的行为和具备的能力capability(狮吼、奔跑、捕猎、哺育幼兽)则类比类的方法函数。

对象是类的实例,生出来就具备类所有的属性和行为能力。如果说类是抽象的,那么对象就是具体的,对象是要占据内存空间的。狮子王里的辛巴和马达加斯加里的Alex就是狮子这个类的两个实例(对象)。辛巴和Alex不仅具备狮子类的所有特点和能力,还可以拥有自己特有的属性和行为,比如辛巴是王子,Alex 生活在动物园里(对象的属性可以更改可以添加)。

我们一直在使用类和对象,无论是基础部分接触到的数据类型(python的数据类型都是对象,都有自己的属性和方法函数),还是在实例部分引入第三方模块操控pdfwordexcel、图片、csvjson、电邮、微信和实现图形界面自动化,这些第三方模块使用的都是类和对象。

用开发好了的类(从第三方模块中来)生成实例(对象),调用它们的属性和方法函数帮忙我们解决了很多碰到的实际问题。

这也体现了面向对象编程的一个好处:把复杂的实现细节和内部的数据怎样流动全部封装起来,既方便了用户的使用又因为屏蔽外界干预而减少出错的可能性。

至于面向对象开发如何减少代码长度、提高代码使用率、增加代码可读性、减少代码修改影响范围、把错误印象控制在小范围……可以在使用过程中慢慢体会。

下一个帖子写类的基本定义,话说为了贴梨园美图我真是拼了

即将推出的Python ABC教程对PythonABC视频内容进行了梳理,对发现的错误进行修正、对代码做了些许优化、替换掉视频中的英文注释、替换掉国内不能访问的资源……敬请关注,谢谢