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 中,我们可以通过将父类的名称作为子类的参数来实现继承,并使用方法重写和多重继承来定制子类的行为。






审核编辑:刘清

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

    关注

    56

    文章

    4782

    浏览量

    84449
收藏 人收藏

    评论

    相关推荐

    华为网络工程师培训教材

    华为网络工程师培训教材
    发表于 08-16 17:27

    华为“网络工程师”培训专用教程

    华为“网络工程师”培训专用教程
    发表于 08-18 15:12

    网络工程师RCNA培训教材(ppt)

    网络工程师RCNA培训教材
    发表于 03-26 09:04 0次下载

    合格的网络工程师必会实验大全

    合格的网络工程师必会实验大全.pdf合格的网络工程师必会实验大全.pdf
    发表于 10-30 17:46 0次下载

    2004-2012网络工程师试题

    2004-2012网络工程师试题是工程师学习通关的必备书籍
    发表于 06-17 16:33 0次下载

    什么是网络工程师

    什么是网络工程师网络工程师就是通过学习和训练,掌握了网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建
    的头像 发表于 02-19 14:28 7618次阅读

    网络工程师的发展前景如何

    很多朋友是从事网络优化工程师这样的无线网络工程师的岗位,也有一些朋友可能还没有入行,这在忧虑从事网络优化工程师
    的头像 发表于 09-02 15:34 5120次阅读

    网络工程师学Python-for循环

    Python 中,for 循环是一种常用的结构,用于遍历序列(如列表、元组、字符串)中的元素。
    的头像 发表于 04-19 15:47 917次阅读

    网络工程师学Python-函数定义

    Python 中,函数是一段可重复使用的代码块,可以接受一些输入(即函数参数),并根据输入执行某些操作。
    的头像 发表于 04-19 15:49 652次阅读

    网络工程师学Python-迭代器

    迭代器是 Python 中非常重要的概念之一,它是一种对象,可以在代码中按顺序访问一组值。
    的头像 发表于 04-20 16:58 891次阅读

    网络工程师学Python-文件打开

    Python中,可以使用open()内置函数打开文件,以执行一系列文件的操作。在本文中,将介绍Python中打开文件的基础知识及常用的打开模式。
    的头像 发表于 04-27 09:14 625次阅读

    网络工程师学Python-文件处理

    当涉及到 Python 文件处理时, 我们通常会涉及到文件的读取和写入, 以及文件的操作和处理。
    的头像 发表于 04-27 09:21 641次阅读

    网络工程师学Python-文件删除

    Python 文件删除是 Python 开发中常用的一项操作,本文将针对 Python 中的 os 模块提供多个示例,介绍如何删除不同类型的文件。
    的头像 发表于 04-27 09:24 495次阅读

    网络工程师学Python-远程连接管理Telnet

    Python Telnet是一种用于远程连接和管理网络设备的Python库。
    的头像 发表于 04-28 09:47 884次阅读

    网络工程师学Python-多线程技术简述

    Python多线程是一种并发编程的方式,通过使用多个线程在同一时间内执行多个任务
    的头像 发表于 04-28 09:49 528次阅读
    <b class='flag-5'>网络工程师学</b><b class='flag-5'>Python-</b>多线程技术简述