- 面向过程:根据业务逻辑从上到下写垒代码
- 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
- 面向对象:对函数进行分类和封装,让开发“更快更好更强...”
面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。
1 while True: 2 if cpu利用率 > 90%: 3 #发送邮件提醒 4 连接邮箱服务器 5 发送邮件 6 关闭连接 7 8 if 硬盘使用空间 > 90%: 9 #发送邮件提醒 10 连接邮箱服务器 11 发送邮件 12 关闭连接 13 14 if 内存占用 > 80%: 15 #发送邮件提醒 16 连接邮箱服务器 17 发送邮件 18 关闭连接
随着时间的推移,开始使用了函数式编程,增强代码的重用性和可读性,就变成了这样:
1 def 发送邮件(内容) 2 #发送邮件提醒 3 连接邮箱服务器 4 发送邮件 5 关闭连接 6 7 while True: 8 9 if cpu利用率 > 90%: 10 发送邮件('CPU报警') 11 12 if 硬盘使用空间 > 90%: 13 发送邮件('硬盘报警') 14 15 if 内存占用 > 80%: 16 发送邮件('内存报警')
今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面向对象编程也支持函数式编程
创建类和对象
class Foo:
pass
class:关键字
调用:obj = Foo()
面向对象三大特性
一. 封装
1. 数据封装 2.将相关功能封装
1 class Foo: 2 def __init__(self,name,age): #数据封装到类中 3 self.name = name 4 self.age = age 5 def detail(self):#功能封装到类中 6 print(self.age)7 obj = Foo("alex",18)
调用
1.直接调用&间接调用
print(obj.age)
obj.detail()
二.继承
多继承:
1.经典类 python2或者继承object的类
当类是经典类时,多继承情况下,会按照深度优先方式查找
2.新式类 python3
当类是新式类时,多继承情况下,会按照广度优先方式查找(严格意义上使用的是C3算法)
作用:提高代码的复用性
三.多态
python原生支持多态,崇尚鸭子模型