一、面向过程编程POP(Procedure Oriented Programming)
面向过程的核心是过程,过程就是指解决问题的步骤。
优缺点:
- 优点: 将负责的问题流程化,进而实现简单化
- 缺点:扩展性差(更新,维护,迭代)
二、面向对象编程OOP(Object Oriented Programming)
面向对象的核心是对象,是一个特征和功能的综合体
优缺点:
- 优点:可扩展性高
- 缺点:编程复杂度相对面向过程高一些,指的是计算机在执行面向对象的程序时的性能表现。
总结:在去完成一些简单的程序时,可以使用面向过程去解决。但是如果有复杂的程序或任务,而且需要不断的进行迭代和维护,那么肯定是优先选择面向对象的编程思想。
三、认识类与对象
- 类:类是对象的一个抽象的概念
- 对象(实例):对象就是由类的创建的实例
- 二者的关系:类和对象的关系就是 模具与铸件的关系
- 类是由对象总结而来的,总结的这个过程叫做抽象
- 对象是由类具体实施出来的,这个过程叫做实例化
定义类与实例化对象
定义一个汽车类,同时说明该汽车具有的属性和相关功能
# 定义一个汽车的类
class Car():
# 属性 ==> 特征 ==> 变量
color = '白色' # 表示颜色属性
brand = '奥迪' # 表示品牌属性
pailiang = 2.4 # 表示排量属性
# 方法 ==> 功能 ==> 函数
def lahuo(self): # 拉货功能
# self 代表调用这个方法的对象,谁调用了这个方法,self就代表谁
print('小汽车能拉货')
def doufeng(self): # 兜风功能
print('小汽车能兜风')
def bamei(self): # 可以嗨起来
print('带妹子去嗨。。。')
# 实例化对象
aodiobj = Car()
aodiobj.lahuo() # 调用对象的方法
print(aodiobj.brand) # 获取对象的属性
四、魔术方法
- 魔术方法也和普通方法一样都是类中定义的成员方法
- 魔术方法不需要去手动调用的,魔术方法会在某种情况下,自动触发(自动执行)
- 魔术方法还有一个比较特殊的地方:就是多数的魔术方法 前后都有两个连续的下划线
- 魔术方法不是我们自己定义的,而是系统定义好的,我们来使用
实例:
(1)定义一个类,完成一个日志的记录
(2)调用这个对象的时候,传递一个日志信息
(3)这个对象会创建一个文件,开始写入,并在最后关闭这个文件
class writeLog():
# 成员属性
# 文件的路径
fileurl = './'
# 日志文件的名称
filename = '2019-09-19'
# 初始化 打开文件
def __init__(self):
#完成文件的打开
print('初始化方法触发类,完成文件的打开')
self.fileobj = open(self.fileurl+self.filename,'a+',encoding='utf-8')
# 写日志的方法
def log(self,s):
print(f'把日志:{s} 写入文件中')
# 析构方法
def __del__(self):
print('析构方法触发了,关闭打开的文件')
# 在对象被销毁时,关闭在初始化方法中打开的文件对象
self.fileobj.close()
网友评论