本期笔记内容综述
-
类与对象
-
类的基本形式
-
定义和使用类
-
类的属性和方法
-
类的多态,封装&继承
类&对象
1.类与对象
物以类聚,人以群分,万物皆为对象,而Python是面向对象的语言。
问题:类到底是什么?能做什么?有什么好处呢?
1.类:现实世界中一些事物的封装,(如学生,老师etc)
2.类可以用来将代码与代码处理的数据相关联,可以从一定程度上降低代码的复杂性.
3.说人话:你可以通过类把一组函数和数据放到一个容器里面,从而用点调法,"."操作符访问它们。
-
类通常是由函数(方法),变量(类变量)和计算出来的属性(特性)组合成的Set(集合).
-
面向对象世界:代码称为类的方法,数据称为类的属性,实例化的数据对象称为实例
-
实例对象: 类的实例为对象
-
引用:通过引用对类的属性和方法进行操作
-
实例化:创建一个类的具体实例对象 如学生张三
类和对象是面向对象编程的两个主要方面:类创建一个新类型,而对象是这个类的实例
栗子:类:鸟,而百灵鸟是鸟类的一个实例,一个对象。
2.类的基本形式
基本形式
3.定义和使用类
-
问题:如何创建类?
-
方式:使用class定义类
示意图
-
Python使用class语句创建对象,定义类。类的主体包含一系列在类定义时执行的语句。
-
每个定义的类均由一个特殊的方法,方法{ __init__() },可通过这个方法控制初始化对象,方法的第一个参数是self,其他同函数的写法。
-
代码运行
结果
-
与基本函数写法对比
对比函数的写法
-
类的使用
创建实例类
-
类就像一种蓝图,一个工厂或一种预定义的东西,通过它你可以创造很多实例对象。
类的比喻
-
创建的类,就相当于创建个摩托罗拉手机工厂,Python使用class语句创建对象,Mikey,Julie,James就相当于三个用户自定制的手机外壳要求的手机,内在功能都一样,只是各自要求的背壳不一样,当用户把数据(信息要求)放置到这个工厂中,工厂就会根据用户的要求产出各自要求的手机(实例对象)。
self重要性
-
每个类的方法第一个参数都是self.{如何理解它的重要性?}
-
且先看段代码:
类函数的调用过程
-
参数self的工作原理
工作原理
-
再次重申
谨记
4.类的属性与方法
-
4.1 类的方法
选自《21天学通Python》
-
常见的方法
简单了解
-
在此主要讲解方法的用法:一通百通
代码运行
-
代码结果
代码结果
-
4.2 类的属性
代码运行
-
运行代码
运行代码
-
代码结果
运行结果
-
代码说明:
代码运行说明
-
4.3 类成员方法与静态方法
方法介绍
-
代码运行
代码运行
-
代码说明:定义了一个同时具有静态方法和类方法的类DemoMthd,然后分别用类名和类实例来调用它们。
-
注意:在静态方法和类方法种不能使用实例属性,因为可能调用的时候类还没实例
再看概念
代码运行
-
知识回顾
知识回顾
-
小思考:使用类而非模块的原因(了解)
思考答案
-
抱歉,这篇文章的东西远远超过了七分钟来理解,先休息下吧。
5.类的多态、封装&继承
-
5.1 类的多态
多态的简单介绍
5.2 类的封装
-
封装是对外部隐藏对象工作的细节,比如玩具枪,洗衣机,人们都不用关心其内部构造,只需要打开开关,可以不用关心对象是如何构建的直接使用即可。
-
'小时候玩过的子弹枪,你不需要知道内部构造,只要装上塑料字典和上膛就可以用'
-
封装的调用:"通俗的理解为把内容装到某个地方,再从某处调用被封装的内容"
-
与多态的区别:封装是不用关心,多态是不知道
-
代码再读:
代码再读
-
简单说明
简单说明
-
5.3 类的继承
以普通类为基础建立专门的类对象。如果已经有一个基类,想再建立一个新类且增加几种新方法,又要用到原来基类的一些方法,这个时候新类就要继承基类的方法,而又有新的方法,这就是继承。
对继承的理解
-
类的构造函数定义再谈
类的构造函数定义再谈
-
且看栗子1:
测试代码
-
继承后的子类:
修改后的子类
-
老板,再来一打栗子:
会唱歌的鸟
总结
-
尽管此次笔记分享内容已经严重超标了,但是这部分内容没完。剩下部分就请大家先看资料补齐了。
命名空间定义的位置:
类的特性:紧跟类的定义之后
对象特性:在__init__中使用self.xxx=定义
-
一些关于面向对象设计的思考
一些关于面向对象设计的思考
-
好了,本期笔记内容到此结束,茄子暂别,我们下期笔记分享再见。每天都美好,祝愿生活愉快!
-
思维导图回顾: