内容回顾
IO流
字符流
字节流
对象序列化和反序列化
Pycharm
Python 的main函数
面向对象的编程--OOP
什么是面向对象
类的对象
类的成员
属性
方法
今日
面向对象
异常处理
上午
面向对象的三大特征
封装、继承和多态
封装
封装是面向对象的三大特征之一。
在面向对象中,封装是有特殊指向的:
1 类的成员都封装在类内部
2 为了安全考虑,往往需要将对象属性进行私有化,提供对应的访问方式(封装)
Python如何私有化成员
Python中私有化类的成员,直接在成员前面加_ _。
如属性name-->_ _name
如方法eat-->_ _eat
_ _私有化后写入
无法访问
注意:一旦私有化属性或方法后,则该私有化的成员,只能在当前类中可以访问到
Python中,若使用-来修饰属性或成员、变量。表示该属性不能被其他模块使用!
get 和set方法
将属性私有化后,我们可以提供公开的get和set方法。来合法的访问和修改私有化的属性。
其他两种封装方式
(1)借用全局函数Property,将私有化属性进行二次封装
(2)@property@setter 让不存在的重载现象形成重载
函数重载(overload)
存在多个同名称函数,函数名称相同,参数的个数或类型不同,从而在调用时,会自动调用对应方法的这种现象,叫做函数重载。
Python是若数据类型编程,所以不存在函数重载!!!
最终,只能保留最后一个同名称函数。
若一定要实现重载,则可以通过装饰器等手段想办法实现。
继承
继承同样是面向对象的三大特征之一。
面向对象中,类与类之间也存在一种继承关系。
被继承的类:父类、超类(super class)、基类:
继承类:子类
当子类继承父类时,该子类自动继承的父类中能被继承的成员
注意:父类中私有化的成员无法被继承
在python中若子类中存在初始化函数,一定要在有效代码的第一行首先手动调用父类的初始化
Class 类名称(【,父类2…】)
pass
继承:主要解决代码复用问题
下午
内容回顾
面向对象的编程
面向对象的三大特征
封装 继承 多态
方法重写、覆盖
方法重写(overwrite)、方法覆盖(override):在继承的基础上,若子类继承了父类的某些或某个方法,发现某一个方法难以满足自身使用时,就会重写这个方法。
面试题:
函数重载(overload)、函数重写(overwrite)、函数覆盖(override).
函数重载(overload):函数名称相同的一批函数,函数的参数和类型不同,从而引起调用时,会调用对应函数的现象
函数重写(overwrite)、函数覆盖(override):在继承的基础上,若子类继承了父类的某些或一个方法,发现某个方法难以满足自身使用时,就会重写这个方法。
多态
什么叫做多态
字面意思上说:一个对象的多种状态。
面向对象中:在继承的基础上,父类引用指向子类实例的现象,被称为多态。
(大范围指向小范围:(归在大类里,找小类时在大类里面找))
Python天生支持多态,时刻体现多态。
Python
java
Python
Python中可以看出,类型并不是关键,所以我们可以认为:python天生支持多态,不用专门强调这个问题。
专业术语:
OO(oriented object)面向对象
OOP(oriented object programming)面向对象的编程
OOA(oriented object analysis)面向对象的分析
OOD(oriented object design)面向对象的设计
OOT(oriented object test)面向对象的测试
……
异常处理
异常就是不正常,往往指的是一种“错误”,这种错误和致命性错误不是一回事。
因为特殊原因,引起软件奔溃现象。
特殊原因:
用户的使用不当
代码存在的BUG
外界环境
自然因素
……
异常是一种错误,这种错误很难避免,需要处理遇到异常时,让程序不要结束,而是能够处理容错的机制。
异常处理
提高了软件的兼容,提高软件的容错能力。
让软件可以有序的运行下去,而不是因为简单的异常,导致程序崩溃。
Python如何进行异常处理
采用抓捕异常,try catch 语法。
建议:回收垃圾,关闭IO流等各种资源,建议放在finally
若抓捕异常,没有抓到异常,则按照原有的流程继续执行代码
若抓捕到异常,则代码就会立即进入到except进行异常处理
Python中异常类的继承问题
finally关键字
finally和return关键字的组合使用
当二者组合使用时,若return不在finally下则finally执行但返回值为return下的值若上图代码输入 10 3 输出结果为3.3333333,若在finally下也写入return ,则输出的结果为13.33333333。
python的自定义异常