脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 【python基础】类-继承

【python基础】类-继承

2023-06-26 17:22乐吧编程 Python

编写类时,并非总是要从空白开始。如果要编写的类时另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法 原有的类称为父类,而新类被称为子类。子类继承了其父类的所有属

编写类时,并非总是要从空白开始。如果要编写的类时另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法

原有的类称为父类,而新类被称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

继承语法格式:

class 子类名(父类名):

1.子类的__init__方法

创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。为此,子类的__init__方法在初始化子类属性时,需要先将父类的所有属性赋值

子类中给父类属性赋值的语法格式:

super().__init__(实参变量1,实参变量2,,,,,实参变量n)

比如动物猫Cat这个子类,继承动物Animal这个父类,编写程序如下所示:

【python基础】类-继承

注意:

1.创建子类时,父类必须包含在当前文件中,且位于子类前面,可以通过import导入到当前文件。

2.super是一个特殊的函数,帮助Python将父类和子类关联起来。这行代码让Python调用Cat的父类的__init__方法,让Cat类的实例cat包含父类的所有属性。

我们通过子类将name传给父类,然后通过调用父类的eat方法,实现了子类实例对父类方法的调用,验证了此时子类继承了父类的所有属性和方法

2.给子类定义属性和方法

子类继承父类后,可添加区分子类和父类的属性和方法。

比如我们给Cat类添加一个猫特有的属性捉老鼠的数量num,给Animal类添加一个动物共有的属性年龄age,编写程序如下所示:

【python基础】类-继承

对于Cat类的特殊化程度没有任何限制。可以根据所需的准确程度添加任意数量的属性和方法。如果一个属性或者方法是任何动物都有的,而不是动物猫特有的,我们就往动物Animal类中添加,是动物猫特有的我们就往猫Cat类中添加。这样动物Animal类有动物的通用属性和方法,猫Cat类有特有的属性和方法,我们只需根据需要调用即可

注意:

子类可以调用父类的属性和方法,但是父类不可调用子类的属性和方法

【python基础】类-继承

会提示父类没有子类的方法等错误。

3.重写父类的方法

对于父类的方法,只要它不符合子类的方法逻辑,都可对其进行重写。为此,可在子类定义一个这样的方法,即它与要重写的父类方法同名。这样Python在用子类调用这个方法的时候,就不会去调用父类的同名方法,而是去调用子类的同名方法。

编写程序如下所示:

【python基础】类-继承

我们看到我们在子类中重新编写了__str__方法,当子类调用该方法时,是调用子类中的该方法,而不是父类中的该方法。

原文地址:https://www.cnblogs.com/lbprogram/p/17496760.html

延伸 · 阅读

精彩推荐
  • PythonPython实现一个服务器监听多个客户端请求

    Python实现一个服务器监听多个客户端请求

    这篇文章主要为大家详细介绍了Python如何实现一个服务器监听多个客户端请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    惊瑟7372021-01-31
  • PythonPython项目实战篇-常用验证码标注和识别

    Python项目实战篇-常用验证码标注和识别

    验证码全称为全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA),俗称验证码,是一种区分用户...

    Python爬虫与数据挖掘5932021-09-10
  • Python一篇文章搞懂Python反斜杠的相关问题

    一篇文章搞懂Python反斜杠的相关问题

    这篇文章主要给大家介绍了如何通过一篇文章搞懂Python反斜杠的相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习...

    ai52learn7602021-09-25
  • PythonPython可视化神器pyecharts绘制雷达图

    Python可视化神器pyecharts绘制雷达图

    这篇文章主要介绍了Python可视化神器pyecharts绘制雷达图,雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的...

    王小王_12310772022-07-06
  • PythonPython中字符串切片详解

    Python中字符串切片详解

    这篇文章主要介绍了Python中字符串切片,在python中定义个字符串然后把它赋值给一个变量。我们可以通过下标访问单个的字符,跟所有的语言一样,下标从...

    Python 学习者7032022-01-20
  • PythonPython YAML文件的读写操作详解

    Python YAML文件的读写操作详解

    这篇文章主要介绍了Python读写yaml文件,yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,有点类似于json格式,下面关于Pyth...

    alwaysrun10952022-08-17
  • Python讲解Python中的递归函数

    讲解Python中的递归函数

    这篇文章主要介绍了讲解Python中的递归函数,递归是学一门编程语言必须掌握的重要特性,需要的朋友可以参考...

    廖雪峰25082020-06-14
  • Python深入理解python协程

    深入理解python协程

    协程又称为微线程,协程是一种用户态的轻量级线程,它是实现多任务的另一种方式,只不过是比线程更小的执行单元。因为它自带CPU的上下文,这样只要...

    luyuze953762021-12-01