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.Numpy学习零碎笔记之数组与矩阵
- Python学习笔记 - 高级特性
- python 学习笔记三
- python学习笔记
- Python学习笔记之疑问11:批量赋值
- python入门笔记
- Python学习笔记之四——类型
- linux+python学习笔记
- python学习笔记(四)
- Python学习笔记之疑问13:什么是Range
- python学习笔记(三) 实现switch,内建函数,模块和包
- twisted python学习笔记:一
- 第一次python笔记
- 小白Python入门笔记(2)
- python学习笔记[1]-凯撒密码
- Python笔记——01模块安装方法
- python学习笔记7.6-内建模块itertools
- 利用Python进行数据分析 学习笔记
- python算法和数据结构笔记--递归--英国标尺的绘制
- 笔记:HeadFirstPython(4)持久存储