一.给大家介绍对象:
(一)python一切皆对象
- 面向对象关注点是“人”。例如:团队协作,这件事情让谁做。
- 面向过程关注点是“事件”。例如:一个人做,这件事我怎么做。
- 为什么要学习面向对象?
- 因为这就像学开车,作为大众司机,并不需要理解汽车为何会跑,但作为赛车手你必须要懂的其原理,因为这有助于你能把车开的更好。
- 之前学的都是面向过程,之后学习的都是面向对象。
(二)回顾:
- 数据封装:把乱七八糟的数据扔进 。 列表。
- 语句封装:把常用的代码段打包成一个。 函数。
- 本章:数据与代码结合的封装。 类。
(三)对象 = 属性 + 方法
- 特征 <=> 属性
- 行为 <=> 方法
(四)类 = 代码 ;对象 = 类的落地
- 类 = 模具 = 图纸 = 规划 = 看不见的东西
- 类的构成:
- 定义:把一系列具有相同的特征和方法的事件整合在一起就称作类。
- 类名:class name:
- 属性:一组数据:变量名 =(str / int)
- 方法:函数:def 函数名(self,..):
- 类名格式:首字母大写,并无需加“()”。
- 调用:
- 若像函数那样(整块)调用,返回的是类名的地址。只能调用具体(def)方法。
- 调用类的具体方法(函数):tt.climbs();tt.sleep()
- 调用格式:类名.函数名()
- 父类和子类的关系:
- 子类是父类的细分,子类从属父类。
- 继承:属性方面:子类是父类的继承。
- 多态:父类细分的子类名称千奇百态。
-
- 例如:鸟类属于父类;鸟类品种千奇百态。
- 三大编程范式:类的门派:
- 面向过程:捂档派
- 面向对象:少林派
- 函数式编程:峨嵋派
- 门派并没有高低之分,习武之人方有高低之分。
(五)面向对象:OO (object oriented)
- 特征:
- 封装:信息隐蔽技术
- 继承:属性传承(继承的新对象与老对象具有相同的方法)
- 多态:不同对象对同一方法响应不同的行动。
- self :等于对象的“门牌号”。作用:调用函数自身方法的对象本身。
- 执行流程:
- 制造模板(类):class + 类名:=> 添加细分函数(不调用)
- 对象获取指定类的属性:对象名 = 类名()=> a = ball()
- 执行类的所属细分方法:对象名.函数名()/ 其他方法名 => b . kick()
- __init__():
- 方法:构造方法
- 作用:自动调用对象
- 适用范围:限量:对象一枚
- 格式:def __init__(self,name)
- 练习:
- 利用类的方法,打印“小甲鱼”。
- 做一个星球大战的简易方法:需求:需要三个星球分别给星球命名、和被玩家“踢”的方法。
- 做一个星球大战的简易方法:需求:需要一个星球并且给星球命名、和被玩家“踢”的方法。
二.类的创建:
(一)属性:
- 对象:c = Car()
- 属性:c.name = “google”
- 属性:c.colour = “white”
以上的对象与属性的从属关系叫做“封装”。
(二)__init__方法:
- 称作“专门封装数据的方法”。
- 注意:常规定义函数一定要加“self”。
- 但__init__后面可加可不加。也可以加其他的属性,即:def __init__(self,name,age... ...)
- 对象名 = 类名()。
- __init__方法添加属性:self.变量名 = (str / int)即“数据”,括号内的可以是新增的数据也可以是形参。
- __init__方法打印属性:需要添加对象再打印。属性可以在里面和外面访问。
- step1:创建对象:对象名 = 类名();step2:print(对象名.对应属性名称)
作业:做骰子。