0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中的继承详解

网络技术干货圈 来源:网络技术干货圈 2023-04-20 16:56 次阅读

Python 中,继承是一种重要的面向对象编程概念。通过继承,我们可以定义一个新的类,它继承了现有类的属性和方法。这种代码重用可以使我们更高效地编写程序,并提高代码的可读性和可维护性。

9ca762fa-df58-11ed-bfe3-dac502259ad0.png

基本语法

在 Python 中,继承是通过将父类的名称作为子类的参数来实现的。例如,下面的代码定义了一个名为 Rectangle 的子类,它继承了 Shape 类的属性和方法。

classShape:
def\__init\__(self,x,y):
self.x=x
self.y=y

defarea(self):
pass

classRectangle(Shape):
def\__init\__(self,x,y,width,height):
super().\__init\__(x,y)
self.width=width
self.height=height

defarea(self):
returnself.width*self.height

在上面的代码中,我们定义了一个名为 Shape 的父类,它包含了一个 x 和一个 y 属性,以及一个名为 area() 的方法。然后,我们定义了一个名为 Rectangle 的子类,它继承了 Shape 类,并添加了一个 width 和一个 height 属性,以及一个重写的 area() 方法。

请注意,我们在子类的 _init_() 方法中使用了 super()._init_(),它调用了父类的构造函数,并将 x 和 y 参数传递给它。这确保了子类在实例化时也会初始化父类的属性。

方法重写

在 Python 中,子类可以重写父类的方法。这使得子类能够自定义其行为,并覆盖继承自父类的默认实现。

classSquare(Rectangle):
def\__init\__(self,x,y,size):
super().\__init\__(x,y,size,size)

在上面的代码中,我们定义了一个名为 Square 的子类,它继承了 Rectangle 类,并重写了其 _init_() 方法,将 width 和 height 参数都设置为 size。这使得 Square 类可以像正方形一样使用,而不是矩形。

多重继承

Python 还支持多重继承,这意味着一个类可以继承多个父类的属性和方法。这使得我们可以组合不同类的功能,并将其合并到一个新的类中。

classEmployee:
def\__init\__(self,name,salary):
self.name=name
self.salary=salary

defcalculate_pay(self):
pass

classSalesPerson(Employee):
defcalculate_pay(self):
returnself.salary+self.commission

classManager(Employee):
defcalculate_pay(self):
returnself.salary+self.bonus

classSalesManager(SalesPerson,Manager):
defcalculate_pay(self):
returnsuper().calculate_pay()+self

在上面的代码中,我们定义了一个名为 Employee 的父类,它包含了一个名为 name 和一个名为 salary 的属性,以及一个名为 calculate_pay() 的方法。然后,我们定义了两个子类,SalesPerson 和 Manager,它们分别重写了父类的 calculate_pay() 方法。

最后,我们定义了一个名为 SalesManager 的子类,它同时继承了 SalesPerson 和 Manager 类。在这种情况下,当我们调用 calculate_pay() 方法时,Python 将从左到右依次搜索父类,直到找到一个具有相应方法的类。在这个例子中,Python 将先搜索 SalesPerson 类,然后是 Manager 类。

请注意,我们使用 super() 函数来调用父类的方法。这确保了所有父类的 calculate_pay() 方法都会被调用,而不是只调用其中一个。

总结

继承是面向对象编程的重要概念之一,可以帮助我们编写更高效和可维护的代码。在 Python 中,我们可以通过将父类的名称作为子类的参数来实现继承,并使用方法重写和多重继承来定制子类的行为。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3591

    浏览量

    93592
  • 程序
    +关注

    关注

    116

    文章

    3775

    浏览量

    80840
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62426
  • 代码
    +关注

    关注

    30

    文章

    4744

    浏览量

    68343
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84449

原文标题:网络工程师学Python-13-继承

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python的面向对象编程详解

    一般编程可分为面向过程编程,和面向对象编程。Python的面向对象编程,与Java的面向对象很像。之所以需要面向对象编程,是为了更好地实现封装、继承、多态。
    发表于 09-04 16:35 524次阅读
    <b class='flag-5'>Python</b>的面向对象编程<b class='flag-5'>详解</b>

    Python多重继承使用方法

    继承是面向对象编程的一个重要方式,通过继承,子类可以扩展父类的功能,Python也具有该特性,除此之外,Python还可以使用多重继承。语法
    发表于 04-19 14:41

    3分钟看懂Python面向对象

    个Interface,但最多继承自一个类)。多重继承机制有时很好用,但是它容易让事情变得复杂。多态多态意味着可以对不同的对象使用同样的操作,但它们可能会以多种形态呈现出结果。在Python
    发表于 06-08 14:20

    js的寄生继承详解

    // 将原型继承和非原型继承组合为一体的继承方式叫做组合继承,但是这种方法的继承是有一点小缺陷的,下级函数
    发表于 05-31 06:03

    python类的继承

    python类的继承类的继承,跟人类繁衍的关系相似。被继承的类称为基类(也叫做父类),继承而得的类叫派生类(也叫子类),这种关系就像人类的父
    发表于 03-08 16:40

    完全自学指南Python爬虫BeautifulSoup详解

    完全自学指南Python爬虫BeautifulSoup详解
    发表于 09-07 08:55 39次下载
    完全自学指南<b class='flag-5'>Python</b>爬虫BeautifulSoup<b class='flag-5'>详解</b>

    Python开发技术详解》-随书附带程序

    Python开发技术详解 周伟,宗杰等编著 机械工业出版社 随书附带程序
    发表于 05-09 14:05 0次下载

    python经典实例详解

    python经典实例详解说明。
    发表于 04-26 10:14 32次下载

    python类的继承详解

    python类的继承 类的继承,跟人类繁衍的关系相似。 被继承的类称为基类(也叫做父类),继承而得的类叫派生类(也叫子类),这种关系就像人类
    的头像 发表于 03-08 16:40 3075次阅读

    Python到底是如何实现继承的呢

    简单地说,在python,新建的类可以继承一个或者多个类。父类又可以称为基类或者超类,新建的类称为派生类或者子类。
    的头像 发表于 08-18 15:46 2328次阅读
    <b class='flag-5'>Python</b>到底是如何实现<b class='flag-5'>继承</b>的呢

    怎样在Java实现多继承

    Java是一种面向对象的只允许单继承的语言,那么怎样在Java实现多继承呢? 2 方法 1. 多层继承 如果要直接继承类,子类
    的头像 发表于 02-17 14:55 1290次阅读

    网络工程师学Python-继承概念介绍

    Python 继承是一种重要的面向对象编程概念。通过继承,我们可以定义一个新的类,它继承了现有类的属性和方法。
    的头像 发表于 04-20 16:56 462次阅读

    [源代码]Python算法详解

    [源代码]Python算法详解[源代码]Python算法详解
    发表于 06-06 17:50 0次下载

    Python继承的基本规则

    继承规则 与其他基于类的语言一样,可以通过继承组合多个类定义。 类定义可以扩展(或继承)多个其他类。这些类又可以扩展其他类。 请注意,类不能继承 P
    的头像 发表于 09-20 14:24 495次阅读

    pythonopen函数的用法详解

    pythonopen函数的用法详解 Python的open()函数用于打开文件。它接受文件名和模式作为参数,并返回一个文件对象。文件对象
    的头像 发表于 01-30 15:31 1948次阅读