类继承之方法重写
2021-01-23 本文已影响0人
闲云野鹤_23dd
类继承之方法重写:
方法重写
含义 : 如果你的父类方法的功能不能满足子类的需求,可以在子类重写你父类的方法
例子:
对SDET类中 重写了do_test和do_dev 方法
class SDET(Tester,Dev):
def __init__(self,name, age, sex,job, language):
Tester.__init__(self,name, age, sex,job)
Dev.__init__(self,name,language)
def do_work(self):
print(f'{self.name}使用{self.language}编写接口测试脚本')
def do_test(self):
print(f'{self.name}执行自动化测试脚本')
def do_dev(self):
print(f'{self.name}擅长使用{self.language}语言,熟悉selenium,request,pytest等框架')`
创建对象,调用方法,可以看到调用了重写后的方法
sdet = SDET('大明', 28, '男','测试开发','python')
sdet.do_dev()
sdet.eat()
sdet.do_work()
sdet.do_test()
执行结果:
大明擅长使用python语言,熟悉selenium,request,pytest等框架
大明在吃工作餐
大明使用python编写接口测试脚本
大明执行自动化测试脚本
子类对象调用父类的方法
使用super()函数可以调用对象父类中的方法
例子:
super(SDET,sdet).do_test()
多态
1、定义一个父类(Base),实现某个方法(比如:run)
2、定义多个子类,在子类中重写父类的方法(run),每个子类run方法实现不同的功能
3、假设我们定义了一个函数,需要一个Base类型的对象的参数,那么调用函数函数的时候,传入Base类不同的子类对象,那么这个函数就会执行不同的功能,这就是多态的体现
例子:
可以看到do_t方法可根据传入的对象 去执行不同的功能
调用相同的方法出现不同结果,这就是多态性,这在复杂的业务关系中十分重要
def do_t(obj):
obj.do_test()
if __name__ == '__main__':
tester = Tester('咸鱼', 25, '男', '资深测试工程师')
sdet = SDET('大明', 28, '男', '测试开发', 'python')
do_t(tester)
do_t(sdet)
执行结果:
咸鱼在做测试
咸鱼在睡觉
大明执行自动化测试脚本