面向对象 初级

  • 面向过程:根据业务逻辑从上到下写垒代码
  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
  • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。

 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         关闭连接
View Code

 随着时间的推移,开始使用了函数式编程,增强代码的重用性和可读性,就变成了这样:

 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         发送邮件('内存报警') 
View Code

今天我们来学习一种新的编程方式:面向对象编程(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原生支持多态,崇尚鸭子模型

原文地址:https://www.cnblogs.com/kxuan/p/14066812.html