zoukankan      html  css  js  c++  java
  • 面向对象

    面向对象

    修改类和对象的方法。

    _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

  • 相关阅读:
    springboot 项目使用阿里云短信服务发送手机验证码
    Vue中el-form标签中的自定义el-select下拉框标签
    解决jQuery中input 失去焦点之后,不能再获取到焦点
    Java操作Jxl实现数据交互。三部曲——《第三篇》
    Java操作Jxl实现数据交互。三部曲——《第二篇》
    springboot搭建项目,实现Java生成随机图片验证码。
    echarts 配置属性参考
    最近用到echarts tab 切换遇到问题 可以参考下
    单位px和em,rem的区别
    关于定位
  • 原文地址:https://www.cnblogs.com/shiqizz/p/11515245.html
Copyright © 2011-2022 走看看