学习总结(二十四)

1.类属性与对象属性

类:class 类名

对象:对象名 object 

   1)__init__():   程序每次运行时都会调用该函数,把__init__()内的变量实例化,实例化时__init__()函数内如果有形参,必须要赋值成为实参不然回报错

   2)self :   该变量在运行时指向本类,有self的函数都回被本类绑定,被类绑定后方便数据处理,提高变量的服用性,类在传入数据后被绑定的方法中self自动获取被传入的数据.绑定后就属于类中的方法,外部不可以直接调用,要通过类来调用

  3)   n1= stur().self()   n2=stur().self()

      n1和n2 这两个是新的对象,但是其中的self()方法都是指向一个方法

   4) @classmeth: 在方法上添加这个标签,就是对象绑定的方法,这是对象的绑定方式之一

        @staticmeth: 这个标签把函数变成静态函数,添加这个标签后,就是会使函数拖绑,使函数变成公共函数

    5)属性查找的顺序

        对象自己---->所在类的父类---->object(基类)

    6)在python3中object是所有类的基类(根类)

       其中pyhton中所有用到的任何数据都是对象

2.类的继承

        1) 类的继承就是子类继承父类中的方法,常量

         python的继承方式

              class Teacher(父类)

           对象的查找顺序就是对类的继承一种描述,只有继承了才能查找到上一个

        2) 派生和覆盖

                子类拥有与父类不同的内容 就称之为派生类

                子类拥有父类相同的函数(方法),但是内容不同就是覆盖(重写)

         3)super():使用该方法会指向父类中相同的方法和常量,super在访问父类属性时 是按照mro列表一层层往上找的

                     mro显示类访问的顺序

         4)菱形继承的问题

                  经典类:不是object的子类 仅在py2中出现深度优先

                  新式类:object的子类 py3中都是新式类

                  先深度 直到有一个公共父类时,查找其他路线(基于C3算法)

 

3.类的抽象

         抽象就是将一系列类中相同的特征和相同的行为抽取,形成一个新的类,不能直接实例化 通过abc模块来实现

       

原文地址:https://www.cnblogs.com/xzcvblogs/p/10877428.html