文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python类中的单继承和多继承用法

2023-06-02 08:19

关注

本篇内容主要讲解“Python类中的单继承和多继承用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python类中的单继承和多继承用法”吧!

前言

Python面向对象编程语言,有List、Str、Dict、Tuple等数据类型,这些数据类型也是对象,比如List类可以有count方法,我们可以通过count方法统计列表中各个元素的数量。

我们可以简单的将定义类理解成就是定义数据结构,同时给这种数据结构制定一些独特的属性或者方法。我们先看最简单的类,在这里我们定义了Point类

#为了显示多个调用的变量from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = 'all'class Point(object):    def __init__(self, x=0, y=0):        self.x = x        self.y = y    def String(self):        #显示Point的信息        return "{X:" +  str(self.x) + ", Y:" + str(self.y) + "}"

调用类之前我们要实例化,这个可以理解成神笔马良画的画,如果不将其搞活,永远是画。通过实例化,调用实例,画中对象就活了。

#实例化Point类point = Point(x=3, y=4)#显示point对象point #显示point的String方法point.String()

代码运行结果

<__main__.Point at 0x10d98ec18>'{X:3, Y:4}'

看个人简介

单继承

只是继承了 一个 基类 。现在我们定义一个Circle类, 圆是由圆心和半径决定的,所以Circle会继承并使用Point的一些特性。

class Circle(Point):    def __init__(self, x=0, y=0, radius=0):        #Circle继承并使用Point的__init__函数        Point.__init__(self, x, y)          #不同于Point的参数radius        self.radius = radius          def String(self):        #显示Circle的信息        return Point.String(self) + ", {Radius:" + str(self.radius) + "}"

现在我们看看Circle

#实例化Circle类circle = Circle(x=3, y=2, radius=5)#显示circle对象信息circle#显示circle的String方法circle.String()

代码运行结果

<__main__.Circle at 0x10d911c18>'{X:3, Y:2}, {Radius:5}'
多继承

多继承,顾名思义就是某个类继承了多个父类(基类)

class Size(object):    def __init__(self, width, height):        self.width = width        self.height = height    def String(self):        return "{Width: " + str(self.width) + ", Height: " + str(self.height) + "}"

继续

#实例化Size对象size = Size(width=5, height=3)sizesize.String()

运行结果

<__main__.Size at 0x10d97e828>'{Width: 5, Height: 3}'

现在已经有了Point、Size类,以及每个类中的String()方法。现在想构建 正四方形Rectangle类。为了让Rectangle具有Point和Size的一些特性,需要让Rectangle继承Point和Size的一些特有的方法。

class Rectangle(Point, Size):    def __init__(self, x, y, width, height):        #让Rectangle使用Point中的init方法,使得Rectangle本身含有x和y属性值        Point.__init__(self, x, y)        #让Rectangle使用Size中的init方法,使得Size本身含有width和height属性值        Size.__init__(self, width, height)    def String(self):        return "Rectangle's init point is " + Point.String(self) + "; Size is " + Size.String(self)

Rectangle 继承了 Point 和 Size 两个类,使得Rectangle不用定义 x、y、width、height。而且 Rectangle的String方法 可以直接调用 Point和Size对象的String方法。

#实例化Rectanglerect = Rectangle(x=0,                  y=0,                  width=5,                  height=3)#调用rectrect#显示其方法rect.String()

运行结果

<__main__.Rectangle at 0x10d978390>"Rectangle's init point is {X:0, Y:0}; Size is {Width: 5, Height: 3}"

到此,相信大家对“Python类中的单继承和多继承用法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯