• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
谢城
博客园    首页    新随笔    联系   管理    订阅  订阅

学习总结(二十四)

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模块来实现

       

 

posted @ 2019-05-16 19:04  谢城  阅读(197)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3