软件测试Python继承与重写基础知识分享

本文介绍了Python中的继承和重写概念,通过实例展示了如何利用继承减少代码重复,并通过覆盖和扩展父类方法实现功能的定制。重写包括覆盖原有方法和在父类基础上扩展新功能,帮助开发者更高效地组织和复用代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#博学谷IT学习技术支持#

目录

一、前言

二、继承

三、重写

3.1覆盖

3.2扩展父类中的功能

四、结尾


一、前言

上周咱们一起学习了私有属性和公有属性的知识,这次咱们继续学习python中另外一个关键知识继承和重写,在生活中,我们想到继承即为子继承父,在python中继承描述的是类与类之间的关系,目的是为了减少代码的冗余,相同的代码不需要进行重复的书写,我们在继承了父类之后,可以直接使用父类中定义的公有属性和方法。

好了,接下来咱们直接进行干货分享吧。

二、继承

1. 继承描述的是类与类之间的关系
2. 继承的好处: 减少代码的冗余(相同的代码不需要多次重复书写), 可以直接使用

继承语法

# class A(object):
class A: # 没有写父类,但也有父类object, object 类是 Python 中最顶级(原始)的类
	pass

class  B(A):  # 类 B, 继承类 A
    pass 

术语:
1. A 类, 称为是 父类(基类)
2. B 类, 称为是 子类(派生类) 

单继承: 一个类只继承一个父类,称为单继承
继承之后的特点:
    子类(B)继承父类(A)之后, 子类的对象可以直接使用父类中定义的公有属性和方法

案例

1. 定义一个 动物类, 吃 
2. 定义一个 狗类, 继承动物类, 吃, 叫
3. 定义一个 哮天犬类, 继承 狗类 

# 1. 定义一个 动物类, 吃
class Animal:
    def eat(self):
        print('要吃东西')


# 2. 定义一个 狗类, 继承动物类, 吃, 叫
class Dog(Animal):
    def bark(self):
        print('汪汪汪叫....')


# 3. 定义一个 哮天犬类, 继承 狗类
class XTQ(Dog):
    pass


# 创建 动物类的对象
# ani = Animal()
# ani.eat()
# 创建狗类对象
# dog = Dog()
# dog.eat()  # 调用父类中的方法
# dog.bark()   # 调用自己类中方法
# 创建哮天犬类对象
xtq = XTQ()
xtq.bark()  # 调用 父类 Dog 类的方法
xtq.eat()   # 可以调用 父类的父类中的方法

结论

python 中 对象.方法() 调用方法
1. 先在自己的类中去找有没有这个方法 如果有,直接调用
2. 如果没有去父类中 查找, 如果有,直接调用
3. 如果没有, 去父类的父类中查找, 如果有直接调用
4. 如果 object 类中有,直接调用, 如果没有,代码报错

三、重写

重写: 在子类中定义了和父类中名字相同的方法, 就是重写
重写的原因: 父类中的方法,不能满足子类对象的需求,所以重写
重写之后的特点: 调用子类字节的方法, 不再调用父类中的方法
重写的方式: 
    >1. 覆盖(父类中功能完全抛弃,不要,重写书写)
    >2. 扩展(父类中功能还调用,只是添加一些新的功能) (使用较多)

3.1覆盖

1. 直接在子类中 定义和父类中名字相同的方法
2. 直接在方法中书写新的代码

class Dog:
    def bark(self):
        print('汪汪汪叫.....')


class XTQ(Dog):
    # XTQ 类bark 方法不再是汪汪汪叫, 改为 嗷嗷嗷叫
    def bark(self):
        print('嗷嗷嗷叫...')


xtq = XTQ()
xtq.bark()

3.2扩展父类中的功能

1. 直接在子类中 定义和父类中名字相同的方法
2. 在合适的地方调用 父类中方法  super().方法()
3. 书写添加的新功能

class Dog:
    def bark(self):
        print('汪汪汪叫.....')
        print('汪汪汪叫.....')


class XTQ(Dog):
    # XTQ 类bark 方法不再是汪汪汪叫, 改为
    # 1. 先 嗷嗷嗷叫(新功能) 2, 汪汪汪叫(父类中功能)  3. 嗷嗷嗷叫 (新功能)
    def bark(self):
        print('嗷嗷嗷叫...')
        # 调用父类中的代码
        super().bark()  # print() 如果父类中代码有多行呢?
        print('嗷嗷嗷叫...')


xtq = XTQ()
xtq.bark()

四、结尾

上面就是python中继承与重写的知识分享了,继承之后可以重写,重写时可以继承父类的方法,扩展新方法,大家灵活运用掌握,对后面的学习有很大的帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值