• 面向对象


    面向对象

    修改类和对象的方法。

    _init_

    对象的绑定方法,对象初始化方法,对象来调用会把对象传过来。

    属性查找:包括数据属性,包括方法。

    ​ - 数据属性:对象中找——》类中——》父类(按照mro查找)——》obj

    ​ - 方法查找:对象的绑定方法——》父类中按照mro列表查找——》obj

    绑定方法:

    • 定义在类内部,没有被任何装饰器装饰的函数,就是方法
    • 给对象来用吗,对象.方法()默认把对象自身传过去 ****特殊之处
    • 类来调用就是普通函数,有几个值传几个值

    对象之间的交互

    • 把一个对象传到另一个对象中,操作这个对象
    • 人狗大战

    三大特性:继承,封装,多态

    • 在类名后的括号中写要继承的类,用逗号分隔
    • py中支持多继承(属性查找顺序)
    • 新式类和经典类
      • 继承了object的类叫新式类,py3中都是新式类。
        • 没有继承object的类叫经典类。
    • 菱形问题的查找
      • 广度优先,新式类
      • 深度优先,经典类
    • mro列表
    • super() 特殊对象,调用父类的方法和属性(严格按照mro列表查找)
    • self和super的区别:self一定是从根上找,super()从当前位置按照mro列表找
    • 类名,方法(),就是个普通函数,这个就不按照mro列表找了,指名道姓的来用。
    • 派生:子类多出来的属性,方法。

    多态和多态性

    • 多态:一个事物多种形态
    • 多态性:执行同一个事物的同一个方法,表现出来的结果是不一样的
    • 两种限制子类必须实现什么方法的方式
      • abc模块
      • raise抛异常
    • 鸭子类型:走路像鸭子,就是鸭子,这是面向对象的多态,是多态性的提现。
    • len() 调用对象._len_()

    封装

    • 把属性和方法隐藏
      • 以__开头,就会隐藏
      • 并没有实际隐藏(做了变形)。外部调用,_类__属性。内部调用,定义方法。
      • 隐藏属性,保证数据安全
      • 隐藏方法,隔离复杂度
      • property 装饰器 包装成数据属性

    其他两个装饰器

    • classmethon : 类的绑定方法,可以类来调用(对象也可以调用)
    • staticmethon : 静态方法,谁都可以调用,不会自动传参数

    元类

    • _call_
    • _new_
    • _getattr_
    • _setattr_
    • _delattr_

    反射

    通过字符串去获取,删除,修改,对象的属性或方法

    • hasattr
    • getattr
    • setattr
    • delattr

    isinstance和issubclass

  • 相关阅读:
    痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性那些事(1)- 概览
    痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动
    《痞子衡嵌入式半月刊》 第 12 期
    不能错过的分布式ID生成器(Leaf ),好用的一批!
    实用!一键生成数据库文档,堪称数据库界的Swagger
    安排上了!PC人脸识别登录,出乎意料的简单
    又被逼着优化代码,这次我干掉了出入参 Log日志
    图文并茂,带你认识 JVM 运行时数据区
    一文说通C#中的异步编程补遗
    一文说通C#中的异步编程
  • 原文地址:https://www.cnblogs.com/shiqizz/p/11515245.html
Copyright © 2020-2023  润新知