您的位置:首页 > 编程语言 > Python开发

Python_7分钟笔记_基础五(类与对象)

2018-12-25 17:15 274 查看

本期笔记内容综述

  1. 类与对象

  2. 类的基本形式

  3. 定义和使用类

  4. 类的属性和方法

  5. 类的多态,封装&继承

 

类&对象

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=定义

  • 一些关于面向对象设计的思考

一些关于面向对象设计的思考

  • 好了,本期笔记内容到此结束,茄子暂别,我们下期笔记分享再见。每天都美好,祝愿生活愉快!

  • 思维导图回顾:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: