面向对象
继承
继承实现代码的重用,相同的代码不需要重复的编写
单继承
就是一个类只继承一个父类
多继承
就是一个类继承多个父类
继承(单继承,多继承)
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)