1. 面向对象的基本介绍
面向过程:根据业务逻辑从上到下写代码。
面向对象:将变量与函数绑定到一起,分类进行封装,每个程序只要负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码。
面向过程编程
面向过程编程的关注点在于怎么做
把完成某一个需求的 所有步骤 从头到尾 逐步实现
根据开发需求,将某些 功能独立 的代码 封装 成一个又一个 函数
最后完成的代码,就是顺序地调用 不同的函数
特点:
注重步骤与过程,不注重职责分工
如果需求复杂,代码会变得很复杂
开发复杂项目,没有固定的套路,开发难度很大
面向对象编程
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)和面向过程编程,是两种不同的编程方式。
相比较函数,面向对象是更大的封装,根据职责在 一个对象中封装多个方法
面向对象编程的关注点在于谁来做
在完成某一个需求前,首先确定职责,也就是要做的事情(方法)
根据 职责 确定不同的 对象,在对象内部封装不同的方法(多个)
最后完成的代码,就是顺序地调用不同对象的相应方法。
特点:
注重 对象 和 职责,不同的对象承担不同的职责。
更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路。
2. 类和对象
类
类是对一群具有相同 特征 或者 行为 的事物的一个统称,是抽象的,不能直接使用。
特征其实就是一个变量,在类里我们称之为属性。
行为其实就是一个函数,在类里我们称之为方法。
类其实就是由 属性 和 方法 组成的一个抽象概念。
对象(实例)
对象是由类创建出来的一个具体存在,可以直接使用。由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法。在开发中,应该先有类,在类里定义好属性和行为,再根据类来创建对象。
类和对象的关系
类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。
使用同一个类,能够创建出很多对象。
类中定义了什么属性和方法,对象中就有什么属性和方法。
不同对象对应的属性值也会不同。
3. 定义类
class 类名():
def 方法1(self,参数列表):
pass
def 方法2(self,参数列表):
pass
4. 创建对象
5. 添加和获取对象的属性
6. 实例方法通过self获取对象属性
7. 魔法方法(__init__)
__init__()方法,在创建一个对象时默认被调用,不需要手动调用
__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。
8. 魔法方法(__str__)
str 如果一个类中定义了__str__方法,在打印对象时,默认输出该方法的返回值,没有定义会返回对象的地址
9. 魔法方法(__del__)
del 析构方法,删除无用的内存对象(当程序结束会自动自行析构方法)
10. 魔法方法(__doc__)
调用__doc__,用于对象的注解(万物皆对象)
可以打印出对象内的注解