当前位置: 首页 > news >正文

【Python】实战:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

 

# 定义汽车基类
class Car:def __init__(self, model, license_plate):self.model = model  # 车型self.license_plate = license_plate  # 车牌def start(self):print(f"{self.model} ({self.license_plate}) 启动了。")def stop(self):print(f"{self.model} ({self.license_plate}) 停止了。")# 定义出租车类
class Taxi(Car):def __init__(self, model, license_plate, company):super().__init__(model, license_plate)  # 调用父类构造函数self.company = company  # 所属出租公司def start(self):super().start()  # 调用父类的启动方法print(f"乘客您好\n我是 {self.company}的司机,我的车牌是{self.license_plate},您要去哪里?\n目的地到了,请您付费下车,欢迎您再次乘坐")
'''
乘客您好
我是长城出租车公司的,我的车牌是:京A88888,您要去哪里?
目的地到了,请您付费下车,欢迎再次乘坐
'''# 定义家用轿车类
class PrivateCar(Car):def __init__(self, model, license_plate, owner_name):super().__init__(model, license_plate)  # 调用父类构造函数self.owner_name = owner_name  # 车主姓名def start(self):super().start()  # 调用父类的启动方法print(f"我是{self.owner_name},我的汽车我做主\n目的地到了,我们去玩吧")# 测试代码
if __name__ == "__main__":# 测试出租车类taxi = Taxi("宝马", "京A888888", "长城出租公司")taxi.start()  # 启动出租车taxi.stop()   # 停止出租车# 测试家用轿车类private_car = PrivateCar("奔驰", "冀A66666", "武大郎")private_car.start()  # 启动家用轿车private_car.stop()   # 停止家用轿车

该代码定义了一种汽车模型,通过面向对象的编程方式展示不同类型汽车的行为和特征。

首先,创建了一个名为`Car`的基类,它的构造方法`__init__`接受两个参数:`model`和`license_plate`,分别表示车型和车牌。该类定义了两个方法:`start`和`stop`,分别用于表示汽车启动和停止时的行为,方法中使用了格式化字符串来输出相应的信息。

接下来,定义一个子类`Taxi`,继承自`Car`类。`Taxi`类在其构造函数中除了调用父类的构造函数外,还增加了一个新属性`company`,表示出租车所属的出租公司。`Taxi`类重写了`start`方法,首先调用父类的`start`方法,然后输出出租车司机的相关信息和对乘客的问候。

然后,定义另一个子类`PrivateCar`,同样继承自`Car`类。此类在构造方法中增加了一个新属性`owner_name`,表示车主姓名。与`Taxi`类相似,`PrivateCar`类也重写了`start`方法,在调用父类的`start`方法后,输出车主的相关信息。

在测试代码部分,`if __name__ == "__main__":`确保该部分代码仅在脚本作为主程序执行时被调用。创建了一辆出租车对象`taxi`,并调用`start()`和`stop()`方法,测试其启动和停止的行为。接着,创建一辆家用轿车对象`private_car`,同样调用其`start()`和`stop()`方法,进行类似的测试。

通过这种继承和方法重载的方式,实现了多态性,使得不同类型的汽车在启动时输出不同的行为和信息。这样,使用者可以通过统一接口(`start`和`stop`方法)来操作不同类型的汽车,而实际的行为则取决于具体的汽车类型。
 

相关文章:

【Python】实战:请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

# 定义汽车基类 class Car:def __init__(self, model, license_plate):self.model model # 车型self.license_plate license_plate # 车牌def start(self):print(f"{self.model} ({self.license_plate}) 启动了。")def stop(self):print(f"{self.model} ({s…...

互联网摸鱼日报(2024-11-07)

互联网摸鱼日报(2024-11-07) 36氪新闻 阿华田再现颓势 中国旅游景区上市公司,三季度财报好看吗? 电动化浪潮下,消费者彻底放弃百年品牌BBA? 估值114亿,海尔系独角兽终止IPO 又一知名品牌门店全关,高端…...

requests库

GET请求 基本实例import requestsresponse requests.get(https://www.httpbin.org/get) print(response.text)params参数import requests data {"name":"Bileton","age":"21" } response requests.get(https://www.httpbin.org/ge…...

大数据之多级缓存方案

多级缓存介绍?多级缓存优缺点,应用场景?多级缓存架构? 多级缓存介绍 多级缓存方案是一种优化手段,通过在多个级别上存储数据来提高应用程序的性能和响应速度。以下是对多级缓存方案的详细解析: 一、多级缓…...

QCon演讲实录|徐广治:边缘云原生操作系统的设计与思考

10月18日,在 QCon 全球软件开发大会 2024(上海站),火山引擎边缘云资深架构师徐广治围绕火山引擎边缘计算产品背后的算力底座 - 边缘云原生操作系统,探讨如何实现算力服务的混合部署和跨区域弹性调度,以及在…...

web第二次作业

代码如下 <!DOCTYPE html> <html> <head> <!-- 设置页面的字符编码为utf-8&#xff0c;确保能正确显示各种字符 --> <meta charset"utf-8"> <title></title> <style> /* 全局样式设置 */ *{ …...

大模型技术讲解:大模型参数微调(大模型微调)

转自 秋色稻田公众号 这篇文章讲讲大模型的参数微调&#xff0c;参数微调&#xff08;Fine-tuning&#xff09;是一种机器学习技术&#xff0c;用于调整大型预训练模型的参数&#xff0c;以大模型适应特定应用场景。这种方法通常用于自然语言处理&#xff08;NLP&#xff09;…...

测试自动化如何和业务流程结合?

测试自动化框架固然重要&#xff0c;但是最终自动化的目的都是为了业务服务的。 那测试自动化如何对业务流程产生积极影响&#xff1f; 业务流程的重要性 测试自动化项目并非孤立存在&#xff0c;其生命周期与被测试的应用程序紧密相关。项目的价值在于被整个开发团队所使用&a…...

Python进阶之IO操作

文章目录 一、文件的读取二、文件内容的写入三、之操作文件夹四、StringIO与BytesIO 一、文件的读取 在python里面&#xff0c;可以使用open函数来打开文件&#xff0c;具体语法如下&#xff1a; open(filename, mode)filename&#xff1a;文件名&#xff0c;一般包括该文件所…...

ubuntu如何卸载colmap

如果你是通过源码编译并安装的 COLMAP&#xff0c;可以按照以下步骤手动卸载&#xff1a; 1. **查找安装路径**&#xff1a; 检查 COLMAP 安装时的路径&#xff08;通常是 /usr/local&#xff09;。 2. **删除二进制文件**&#xff1a; 删除已安装的 COLMAP 可执行文…...

【comfyui教程】ComfyUI即将迎来全新界面:升级体验就在11月15日

前言 ComfyUI迎来全新界面&#xff1a;升级体验就在11月15日 想象一下&#xff0c;拥有一个更直观、更智能的用户界面&#xff0c;不再需要在繁杂的设置中摸索。这不再只是梦想&#xff01;从2024年11月15日起&#xff0c;ComfyUI将正式启用新UI (Beta UI)作为默认界面&#…...

Leecode热题100-104.二叉树的最大深度

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,null,2] 输出…...

深度学习中的 Dropout:原理、公式与实现解析

8. dropout 深度学习中的 Dropout&#xff1a;原理、公式与实现解析 在神经网络训练中&#xff0c;模型往往倾向于“记住”训练数据的细节甚至噪声&#xff0c;导致模型在新数据上的表现不佳&#xff0c;即过拟合。为了解决这一问题&#xff0c;Dropout 应运而生。通过在训练…...

【大数据学习 | HBASE】habse的表结构

在使用的时候hbase就是一个普通的表&#xff0c;但是hbase是一个列式存储的表结构&#xff0c;与我们常用的mysql等关系型数据库的存储方式不同&#xff0c;mysql中的所有列的数据是按照行级别进行存储的&#xff0c;查询数据要整个一行查询出来&#xff0c;不想要的字段也需要…...

完成程序《大奖赛评分B》

学习目标&#xff1a; 使用代码完成程序《大奖赛评分B》 题目&#xff1a; 如今许多歌手大奖赛评分时&#xff0c;为了体现公平&#xff0c;在评委给出分数后统计平均得分时&#xff0c;都会去掉最高分和最低分。编写程序&#xff0c;读入评委打分&#xff08;分数都是大于0的…...

K8S篇(基本介绍)

目录 一、什么是Kubernetes&#xff1f; 二、Kubernetes管理员认证&#xff08;CKA&#xff09; 1. 简介 2. 考试难易程度 3. 考试时长 4. 多少分及格 5. 考试费用 三、Kubernetes整体架构 Master Nodes 四、Kubernetes架构及和核心组件 五、Kubernetes各个组件及功…...

linux alsa-lib snd_pcm_open函数源码分析(三)

欢迎直接到博客 linux alsa-lib snd_pcm_open函数源码分析&#xff08;三) 系列文章其他部分: linux alsa-lib snd_pcm_open函数源码分析&#xff08;一) linux alsa-lib snd_pcm_open函数源码分析&#xff08;二) linux alsa-lib snd_pcm_open函数源码分析&#xff08;四…...

基于ssm的个人健康管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…...

Debian下载ISO镜像的方法

步骤 1&#xff1a;访问Debian官方网站 打开你的网络浏览器&#xff0c;在地址栏中输入 https://www.debian.org/ 并回车&#xff0c;这将带你到Debian的官方网站。 步骤 2&#xff1a;导航到下载页面 在Debian官方网站的首页上&#xff0c;找到并点击“Download Debian”或类…...

大厂面试真题-简单说说线程池接到新任务之后的操作流程

线程池在接到新任务后的操作流程通常遵循以下步骤&#xff0c;这些步骤确保了任务的高效管理和执行。 一、判断当前线程状态 线程池首先会判断当前是否存在空闲线程&#xff0c;即没有正在执行任务且未被标记为死亡的线程。 有空闲线程&#xff1a;如果存在空闲线程&#xf…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...