美文网首页
Python|面向对象编程总结(1)

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

作者: ShowMeCoding | 来源:发表于2020-05-25 13:02 被阅读0次

    一、面向过程编程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()
    

    相关文章

      网友评论

          本文标题:Python|面向对象编程总结(1)

          本文链接:https://www.haomeiwen.com/subject/ozxyahtx.html