类继承之方法重写

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)

执行结果:

咸鱼在做测试
咸鱼在睡觉
大明执行自动化测试脚本
上一篇下一篇

猜你喜欢

热点阅读