zoukankan      html  css  js  c++  java
  • Python继承、多继承、魔术方法

    1. 继承和多继承的概念和使用
    2. super的用法
    3. __str__   __repr__   __call__
    4. 多继承方法解析顺序和Mix-in开发模式
    5. 魔术方法原理和作用

    继承

    定义类的时候,在类名后面的括号里填继承的类的类名

    顶级基类object

    __bases__:查看类的直接父类

    继承搜索

    访问类的属性或方法 --> 如果找不到,转到其父类中查找 --> 如果再找不到,转到其父类的父类中查找

    多继承

    当继承多个父类时,如果父类中有相同的方法,那么子类会优先使用最先被继承的方法

     

    重写

    当子类继承父类之后,如果子类不想使用父类的方法,可以通过重写来覆盖父类的方法

     

    super用法

    重写父类方法之后,又需要使用父类的方法

    方法一:父类名.方法名

    方法二:super 函数可以调用父类的方法

     

    类在生成时会自动生成方法解析顺序

    可以通过调用类的__mro__属性或者mro方法来查看类的继承关系

    object是所有类的父类

    Mix - in 设计模式

    由多个模块组成一个整体

    最好,多继承就一层,且是最后一层

    魔术方法

    一种特殊的方法,前后有两个下划线

    特点:不需要人工调用,在特定的时候自动执行

    魔术方法之运算方法

    不同运算符调用不同的魔术方法(了解即可)

    __add__ # x+y    __sub__ # x-y    __mul__ # x*y    __mod__ # x%y

    __iadd__ # x+=y   __isub__ # x-=y  __imul__ # x*=y  __imod__ # x%=y

    __radd__  # y+x    __rsub__  # y-x

    str和repr原理(str优先级大于repr)

    在python中,str和repr方法在处理对象的时候,分别调用的是对象的__str__和__repr__方法

     

    print打印对象,调用str函数,如果对象没有定义__str__方法,则调用__repr__方法处理

     

     

    在交互模式下,直接输出对象,显示 __repr__ 的返回值

    __call__方法

    正常情况下,实例是不能像函数一样被调用的,要想实例能够被调用,就需要定义 __call__  方法

     

    类中的一些查询相关信息的方法(了解既可)

    __class__ 查看类名                         格式: 实例.__class__

    __dict__ 查看全部属性、返回属性和属性值键值对形式         格式:实例.__dict__

    __doc__ 查看对象文档,即类中(用三个引号引起来的部分)        格式:类名.__dict__

    __bases__ 查看父类                        格式:类名.__base__

    .__mro__ 查看多继承的情况下,子类调用父类方法时,搜索顺序      格式:子类名.__mro__    实例.__class__.__mro__

  • 相关阅读:
    HTTP 常用 Header
    三大框架面试笔记-Hibernate
    三大框架面试笔记-Spring
    Bloom Filter概念和原理
    笔记:编写高质量代码 改善Java程序的151个建议
    笔记:Effective Java
    HTTP状态码
    JAVA8 十大新特性详解
    java7 新特性
    笔记:Hadoop权威指南 第10章 管理Hadoop
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11759223.html
Copyright © 2011-2022 走看看