python面向对象及异常处理

本文详细介绍了Python中的面向对象编程概念,包括封装的特性、如何实现私有化成员及get和set方法,继承的原理与子类初始化,多态的含义以及异常处理的技巧。还讨论了函数重载和方法重写/覆盖的区别,以及Python中的异常类和finally关键字的使用。
摘要由CSDN通过智能技术生成

内容回顾

   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的自定义异常

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值