您的位置:首页 > 教育 > 培训 > 模板之家下载_独立站shopify需要费用吗_买卖网站_怎么让百度收录网站

模板之家下载_独立站shopify需要费用吗_买卖网站_怎么让百度收录网站

2024/12/26 23:44:43 来源:https://blog.csdn.net/dowhileprogramming/article/details/144639932  浏览:    关键词:模板之家下载_独立站shopify需要费用吗_买卖网站_怎么让百度收录网站
模板之家下载_独立站shopify需要费用吗_买卖网站_怎么让百度收录网站

Python 面向对象编程 二 继承和多继承

    • 用继承扩展类
      • 简单继承
      • 多继承

用继承扩展类

OOP中的继承概念类似于现实世界中的继承,在现实世界中,孩子们在自己的特征之上继承了父母的一些特征。

同样,一个类可以从另一个类继承元素。这些元素包括属性和方法。我们从中继承另一个类的类通常被称为父类、超类或基类。我们从另一个类继承的类称为派生类、子类或子类。以下屏幕截图显示了父类和子类之间的简单关系:

扩展
父类
子类

在Python中,当一个类从另一个类继承时,它通常会继承组成父类的所有元素,但这可以通过使用命名约定(如双下划线)和访问修饰符来控制。
继承可以有两种类型:简单继承或多重继承。接下来我们会探讨这些内容。

简单继承

在简单继承或基本继承中,类是从单个父类派生的。这是面向对象编程中常用的继承形式,更接近人类的家谱。使用简单继承的父类和子类的语法如下所示:

class BaseClass:
<基类的方法和属性>
class ChildClass (BaseClass):
<子类的方法和属性>

对于这个简单的继承,我们将修改小汽车类类的示例,使其从交通工具类父类派生。我们还将添加一个大卡车子类演示一下继承。以下是经过修改的代码:

class 交通工具:def __init__(, 颜色):.颜色 = 颜色def 输出_交通工具_信息():print(f"我是一个交通工具,我的颜色是{.颜色}")class 小汽车(交通工具):def __init__(, 颜色, 座位数量):.颜色 = 颜色我.座位数量 = 座位数量def 输出_自己():print(f"我是一个小汽车,我的颜色是{.颜色},我有{.座位数量}个座位。")class 大卡车(交通工具):def __init__(, 颜色, 载重量):.颜色 = 颜色我.载重量 = 载重量def 输出_自己():print(f"我是一个大卡车,我的颜色是{.颜色}, 我的载重量是{.载重量}吨。")if __name__ == "__main__":小汽车 = 小汽车("黑色", 4)小汽车.输出_交通工具_信息()小汽车.输出_自己()大卡车 = 大卡车("蓝色", 10)大卡车.输出_交通工具_信息()大卡车.输出_自己()

下面是输出结果:

我是一个交通工具,我的颜色是黑色
我是一个小汽车,我的颜色是黑色,我有4个座位。
我是一个交通工具,我的颜色是蓝色
我是一个大卡车,我的颜色是蓝色, 我的载重量是10吨。

在这个例子中,我们创建了一个父类交通工具,这个类有一个颜色属性和一个输出_文通工具_信息方法。这两个元素都是可以被继承的。接下来,我们给交通工具类创建了两个子类小汽车类大卡车类.小汽车类添加了一个座位数量属性和一个输出_自己方法;大卡车类 添加了一个载重量属性和一个输出_自己方法。通过代码可以看出,我们可以在通过子类的实例访问父类的属性和方法。

这个例子演示了,继承对编写可复用代码来说是必要的。

多继承

Python 编程语言允许多继承。

在多继承中,子类可以从多个父类派生。多重继承的概念适用于高级面向对象设计,其中对象与多个对象有关系,但从多个类继承时必须小心,特别是如果这些类是从一个公共超类继承的。这可能会导致菱形问题等问题。菱形问题是一种情况,当我们通过从两个类YZ继承来创建X类,而Y和Z类是从一个公共类A继承的。X类将对A类的公共代码产生歧义,而A类是从YZ类别继承的。由于可能带来的问题,不鼓励多重继承。

A
Y
Z
X

上图就是菱形继承。

为了说明这个概念,我们将修改交通工具类类和小汽车类类,并添加一个发动机类类作为父类之一。下面的代码完整演了多继承:

class 交通工具类:def __init__(, 颜色):.颜色 = 颜色def 输出_交通工具_信息():print(f"我是一个交通工具,我的颜色是{.颜色}。")class 发动机类:def __init__(, 排量):.排量  = 排量class 小汽车(交通工具类, 发动机类):def __init__(, 颜色, 座位数量, 排量):.颜色 = 颜色我.座位数量 = 座位数量我.排量 = 排量def 输出_自己():print(f"我是一个小汽车,我的颜色是{.颜色},我有{.座位数量}个座位,我的发机机排量是{.排量}。")class 大卡车类(交通工具类, 发动机类):def __init__(, 颜色, 载重量, 排量):.颜色 = 颜色我.载重量 = 载重量我.排量 = 排量def 输出_自己():print(f"我是一个大卡车,我的颜色是{.颜色}, 我的载重量是{.载重量}吨,我的发动机排量是{.排量}。")if __name__ == "__main__":小汽车 = 小汽车("黑色", 4, "2.5L")小汽车.输出_交通工具_信息()小汽车.输出_自己()大卡车 = 大卡车类("蓝色", 10, "10.0L")大卡车.输出_交通工具_信息()大卡车.输出_自己()

以上代码的输出结果是:

我是一个交通工具,我的颜色是黑色。
我是一个小汽车,我的颜色是黑色,我有4个座位,我的发机机排量是2.5L。
我是一个交通工具,我的颜色是蓝色。
我是一个大卡车,我的颜色是蓝色, 我的载重量是10吨,我的发动机排量是10.0L。

以上代码的类图是:

交通工具类
小汽车类
发动机类
大卡车类

在这个多继承的例子中,小汽车类大卡车类 都有两个父类 交通工具类发动机类

<未完待续>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com