2020.7.2 Super

发布于 2020-07-02  36 次阅读


1.复习内容

2.灵感代办

3.学习内容

4.扩展延伸知识

  • Django 中 null 和blank

    • null 是 数据库字段可以为空
    • blank 是数据库在赋值时候可以不填,默认是False或‘’
  • logging 使用

    • logging全局配置
      • basicConfig 配置了level信息和format格式信息
        • logging.basicConfig(level = logging.INFO, format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  • Js中正则创建的两种方法

    • 1.直接量 / 正则 /
    • 2.new RegExp()对象
    • 区别就是RegExp可以包含变量
  • Js中正则匹配特殊符号

    • 匹配特殊字符 需要反斜杠转义
    • 可以包裹在[] 当中
  • super的调用方式

    • 1.super(type,obj) type是类,obj是对象,
      • 此时调用isinstance(type,obj) == True
      • 在obj的class.mro(都有双下划线) :MRO规则中查找type类的下标所以,找到之后调用 index+1位置的方法,方法的self是当前obj
    • 2.super(type_parent,type_sub) 两个都是泪
      • 此时调用issubclass(type_sub, type_parent) == True
      • 在type_sub中的MRO列表
    • 总结:
      • super 和父类没有实质性的关联。
      • super(cls, inst) 获得的是 cls 在 inst 的 MRO 列表中的下一个类。
      • 调用父类时候,父类中的self是子类的实例
    • super没那么简单
  • MRO 规则

    • 子类永远在父类前面
    • 如果有多个父类,会根据它们在列表中的顺序被检查
    • 如果对下一个类存在两个合法的选择(super),选择第一个父类
  • Python描述器

    • __get__,__set__,__delete__ 定义了其中任何一种方法,这个类就可以称为描述器
  • Python 获取属性

    • 从类中的__dict__[‘属性’] 获取,依次向上查找(对象-类-父类)

5.知识内容个人梳理

6.今天都复习了之前的什么内容


Ares个人进阶之路