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

python---继承,方法的重写、扩展及异常处理

2019-04-29 15:01 281 查看

面向对象

继承

继承实现代码的重用,相同的代码不需要重复的编写

单继承

     就是一个类只继承一个父类

多继承

     就是一个类继承多个父类

 

 

继承(单继承,多继承)

 class Anamal(object):#新式类

     def eat(self):

         print('吃')

     def drink(self):

         print('喝')

     def run(self):

         print('跑')

     def sleep(self):

         print('睡')

 class Dog(Anamal):

     def bark(self):

         print('汪汪叫')

         print('啦啦啦...')

 

 

方法的重写

 class XiaoTianQuan(Dog):

     def fly(self):

         print('我会飞啦!!!!')

     def bark(self):

         print('%¥%##@*#%......')

 

 dog = XiaoTianQuan()

 dog.bark()

 

 

对父类方法的扩展

 class XiaoTianQuan(Dog):

     def fly(self):

         print('我会飞啦!!!!')

     def bark(self):

         super().bark()

         print('%¥%##@*#%......')

 

 dog = XiaoTianQuan()

 dog.bark()

 

 

 面向对象多态

 多态不同的子类对象调用相同的父类方法,产生不同的执行结果

     1.多态可以增加代码的灵活度

     2.以继承和重写父类方法为前提,才能够实现多态

     3.是调用方法的技巧,不会影响到类的内部设计

多态的特性:让不同的子类对象调用相同的代码产生不同的结果

 

class Dog(object):

    def __init__(self, name):

        self.name = name

    def game(self):

        print('%s 开开心心去玩耍.....' % self.name)

class XiaoTianQuan(Dog):

    def game(self):

        print('%s 开开心心去玩耍.....' % self.name)

class Person(object):

    def __init__(self, name):

        self.name = name

    def game_with_dog(self, dog):

        print('%s 和 %s 正在开开心心的玩耍......' % (self.name, dog.name))

        dog.game()

创建人对象

xiaoming = Person('小明')

创建狗对象

# dog = Dog('旺财')

dog = XiaoTianQuan('哮天犬')

让小明跟狗玩耍

xiaoming.game_with_dog(dog)

 

 

 

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

异常是Python对象,表示一个错误。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理:

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

 

 

 try:

     print(a)

 except:

     print('错误')

 finally:#不管代码成功与否都执行finally的代码块

     print('执行完毕')

 

 

 try:

     print(a)

 except NameError:#捕捉错误类型

     print('变量没定义')

 

 try:

     print(a)

 except NameError as e:#捕捉原生错误

     print(e)

 

 

处理多个异常

 try:

     # print(a)

     int('aaa')

 except NameError as e1:

     print(e1)

 except ValueError as e2:

     print(e2)

 

自定义异常

class MyError(Exception):

    def __init__(self,age):

        self.age=age

 

 

def ag():

    age=int(input('输入年龄:'))

    if age<=0 or age>100:

        raise MyError('年龄只能在0到100岁之间')

 

try:

     ag()

except MyError as e:

    print(e)

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: