面向对象
对象(object)
python就是一个面向对象的编程语言
对象就是内存中专门用来存储数据的一块区域
对象的结构
- 1.id(标识)
- 2.type(类型)
- 3.value(值)
面向过程
就是将程序的逻辑分解成一个一个的步骤,例如 冰箱.开门,冰箱.储存,冰箱.关门
我们通过完成一个一个的步骤来完成一个程序
这种方式写代码只适用于一个功能
符合人类的思维逻辑,编写起来比较简单
类的简介(Class)
类,简单理解相当于一张图纸,在程序中我们需要根据类来创建对象
如果多个对象是通过一个类创建的,我们就称这些对象是一类对象
int() float() bool() str() ........
a = int(10) 等价于 a = 10 创建了一个int类的实例
自己定义类需要大写字母开头

image.png

image.png

image.png
类的说明
- 类也是一个对象
- 类就是一个用来创建对象的对象
- 类就是type类型的对象,定义类实际上就是定义了一个type类的对象
- 现在通过MyClass创建的对象都是一个空对象
- 可以向对象中添加变量,对象中的变量称为属性
语法 对象.属性名 = 属性值
类的定义
对现实生活中事物的抽象
实际上所有的事物都是有两部分组成
- 1.数据(属性)
-
2.行为(方法)
image.png
调用方法 对象.方法名()
- 在类中有代码块,我们可以定义变量和函数
- 在类中我们定义的变量,将会成为所有实例对象的公共属性 通过对象.属性名的方式访问
- 所有实例都可以访问这些变量
- 在类中也可以定义函数,类中定义的函数,我们称之为方法
- 这些方法也可以通过该类的实例来访问
- 函数会成为该类实例的公共方法,所有该类的实例都可以通过 对象.方法名()的方式调用
-
方法调用和函数调用的区别
1.如果是函数调用,你有几个形参,我就传递几个实参
2.如果是方法调用,默认传递一个形参,所有在定义方法的时候至少得有一个形参
image.png

image.png
类属性和方法
当我们调用一个对象的属性时,解析器会先在当前对象中寻找是否还有该属性,如果有,则直接返回当前的对象的属性值。如果没有,则去当前对象的类对象中去寻找,如果有则返回类对象的属性值。如果没有就报错。

image.png
- 类对象和实例对象都可以保存属性/方法
- 如果这个属性/方法是所有实例共享的,则应该将其保存到类对象当中
- 如果这个属性/方法是某个实例独有的,则应该保存到实例对象当中
- 一般情况下属性都保存到实例对象中
- 方法一般都保存到类对象中
self参数
方法每次被调用的时候,解析器会自动传递一个实参
如果是p1调用,则第一个参数(self)就是p1对象
如果是p2调用,则第一个参数(self)就是p2对象

image.png

