Python|面向对象编程总结(1)

一、面向过程编程POP(Procedure Oriented Programming)

面向过程的核心是过程,过程就是指解决问题的步骤。

优缺点:

  • 优点: 将负责的问题流程化,进而实现简单化
  • 缺点:扩展性差(更新,维护,迭代)

二、面向对象编程OOP(Object Oriented Programming)

面向对象的核心是对象,是一个特征和功能的综合体

优缺点:

  • 优点:可扩展性高
  • 缺点:编程复杂度相对面向过程高一些,指的是计算机在执行面向对象的程序时的性能表现。

总结:在去完成一些简单的程序时,可以使用面向过程去解决。但是如果有复杂的程序或任务,而且需要不断的进行迭代和维护,那么肯定是优先选择面向对象的编程思想。

三、认识类与对象

  • 类:类是对象的一个抽象的概念
  • 对象(实例):对象就是由类的创建的实例
  • 二者的关系:类和对象的关系就是 模具与铸件的关系
  1. 类是由对象总结而来的,总结的这个过程叫做抽象
  2. 对象是由类具体实施出来的,这个过程叫做实例化

定义类与实例化对象

定义一个汽车类,同时说明该汽车具有的属性和相关功能

# 定义一个汽车的类
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()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容