您的位置:首页 > 编程语言 > Python开发

python 笔记1

2018-11-28 10:48 120 查看

1.类和对象的成员分析

  • 类存储成员时使用的是与类关联的一个对象
  • 创建对象(实例化)的时候,类中的成员不会放入对象当中,而是得到一个空对象,没有成员
  • 当对象需要访问类中成员时,属于借用

2.关于self

  • self在对象的方法中表示当前对象本身,如果通过对象调用一个方法,那么该对象会自动传入到当前方法 的第一个参数中
  • 方法中有self形参的方法成为非绑定类的方法,可以通过对象访问, 没有self的是绑定类的方法, 只能通过类访问

3.封装中的定义

  • 封装:将相应成员进行权限控制,该公开的公开,私有的私有
  • public,private,protected不是关键字
  • python中下划线使用
  • Python的私有和保护不是真私有,是一种成为name_mangling的改名策略 可以使用 私有:在成员前面添加两个下划线即可 __age = 18
  • 保护:在成员前面添加一个下划线即可 _neakname = "二狗子"

4.继承

  • 继承:继承父类公有和保护成员,提高复用率
  • 所有的类都继承自object类,即所有的类都是object类的子类
  • 子类继承父类后并没有将父类成员完全赋值到子类中,而是通过引用关系访问调用
  • 继承语法 class b(a): --表示b继承a
    -子类如果想扩充父类的方法,可以在定义新方法的同时访问父类成员来进行代码重用, 可以使用 [父类名.父类成员] 的格式来调用父类成员,也可以使用super().父类成员的 格式来调用

    class Person():
    def work(self):
    print("make some money")

    class Teacher(Person):
    def work(self):

    扩充父类的功能只需要调用父类相应的函数

    #Person.work(self)
    # 扩充父类的另一种方法
    # super代表得到父类
    super().work()
    self.make_test()
  • 构造函数:如果子类没定义,父类的构造函数带参数,则构造对象时的参数应该按父类参数构造
  • super:super的作用是获取MRO(MethodResolustionOrder)[ _mro_ ]列表中的第一个类
  • 关于多继承的MRO MRO就是多继承中,用于保存继承顺序的一个列表
  • python本身采用C3算法来多多继承的菱形继承进行计算的结果
  • MRO列表的计算原则:
  • 子类永远在父类前面
  • 如果多个父类,则根据继承语法中括号内类的书写顺序存放
  • 如果多个类继承了同一个父类,孙子类中只会选取继承语法括号中第一个父类的父类

5.多态

  • 多态就是同一个对象在不同情况下有不同的状态出现
  • 多态性: 一种调用方式,不同的执行效果
  • 多态与多态性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 笔记