python学习面向对象之组合的那些事儿

先上概念:

组合是通过将不同的类或模块组合在一起,创建一个新的类来实现的机制。这意味着一个类的对象可以包含其他类的对象作为其部分,通过组合这些部分来实现整体的功能。

交通工具的烦恼

话说时间到3030年了,风陵苑交通协会委员(交通工具类)会决定不再为各个交通工具分配轮胎,其他标准依旧会保留,让各交通工具制造商自行解决。

class Vehicle():def __init__(self, color, speed, num):# 交通工具都有的属性self.color = color  # 颜色self.speed = speed  # 时速self.num= num# 轮胎数量

这天“汽车(car类)”、“自行车(Bicycle类)”在咖啡店碰面,一起商讨如何对抗汽车协会的不作为行为。汽车首先说话了"我需要的轮胎特殊,以前制作汽车只需要从交通协会指定的汽车轮胎工厂(之前的这是继承)拿就行了。现在为了控制成本 ,真的是脸都不要了"。自行车随声附和道:“9494,哎!!!“。就在这时,在隔壁喝咖啡的轮胎(Tyre类)听到了,内心却十分的激动,没想到3000来年的准备,终于守得云开见日出,众里寻他千百度,得来全不费工夫。只见轮胎快速移动了隔壁,并开始推销起来,我们公司能提供各种各样的轮胎,价格可谈,价格可谈,尺寸可定制。

class Vehicle():def __init__(self, color, speed, num):# 交通工具都有的属性self.color = color  # 颜色self.speed = speed  # 时速self.num= num# 轮胎数量class Tyre():  # 轮胎def __init__(self, size, price):self.size = sizeself.price = priceclass Car(Vehicle):# 汽车交通工具def __init__(self, color, speed, num):# 汽车继承交通工具所需要的参数super().__init__(color, speed, num)'''直接实例化对象'''self.tyre = Tyre('20inch', 1000) # 汽车类指定的轮胎self.consume = num*self.tyre.price  # 总价格self.size = self.tyre.size  # 尺寸class Bicycle(Vehicle):# 自行车交通工具def __init__(self, color, speed, num):# 自行车继承交通工具所需要的参数super().__init__(color, speed, num)'''直接实例化对象'''self.tyre = Tyre('24inch', 200) # 自行车类指定的轮胎self.consume = num*self.tyre.price  # 总价格self.size = self.tyre.size  # 尺寸

汽车说到:”轮胎,你别只会吹牛,先来个样品试试“,轮胎:”小样“。

car = Car('green', '120km/h', 4)#-->car.__dict__{'color': 'red','speed': '120km/h','num': 4,'tyre': <__main__.Tyre at 0x2736b7eba50>,'consume': 4000,'size': '20inch'}

自行车说到:”我也来一个试试看“

bicycle = Bicycle('yellow', '60km/h', 2)
#-->bicycle.__dict__{'color': 'yellow','speed': '60km/h','num': 2,'tyre': <__main__.Tyre at 0x2736b7e9690>,'consume': 400,'size': '24inch'}

轮胎自豪的说到,”怎么样?只要你们需要明确,再也不用去看那破交通协会的脸了,记得帮我也给飞机,高贴家推销推销,有打折扣“

汽车,自行车说到:"安排"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NIST再次强调:2024-2030年,必须升级至抗量子算法

4月10日至12日&#xff0c;美国国家标准与技术研究院&#xff08;NIST&#xff09;在马里兰州罗克维尔举办第五届NIST PQC&#xff08;后量子密码学&#xff09;标准化会议&#xff0c;该会议的目的是对PQC算法进行全面讨论&#xff08;包括已选定和正在评估的算法&#xff09;…

如何处理ubuntu22.04LTS安装过程中出现“Daemons using outdated libraries”提示

Ubuntu 22.04 LTS 中使用命令行升级软件或安装任何新软件时&#xff0c;您可能收到“Daemons using outdated libraries”&#xff0c;“Which services should be restarted?”的提示&#xff0c;提示下面列出备选的重启服务&#xff0c;如下。 使用以下命令&#xff0c;能够…

LangChain - 文档加载

文章目录 一、关于 检索二、文档加载器入门指南 三、CSV1、使用每个文档一行的 CSV 数据加载 CSVLoader2、自定义 csv 解析和加载 &#xff08;csv_args3、指定用于 标识文档来源的 列&#xff08;source_column 四、文件目录 file_directory1、加载文件目录数据&#xff08;Di…

day05-java面向对象(上)

5.1 面向对象编程 5.1.1 类和对象 1、什么是类 类是一类具有相同特性的事物的抽象描述&#xff0c;是一组相关属性和行为的集合。 属性&#xff1a;就是该事物的状态信息。 行为&#xff1a;就是在你这个程序中&#xff0c;该状态信息要做什么操作&#xff0c;或者基于事物…

Go操作Kafka之kafka-go

Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;本文介绍了如何使用kafka-go这个库实现Go语言与kafka的交互。 Go社区中目前有三个比较常用的kafka客户端库 , 它们各有特点。 首先是IBM/sarama&#xff08;这个库已经由Shopify转给了IBM&#xff09;&#xff0c;之…

Triton Server Python 后端优化

接上文 不使用 Docker 构建 Triton 服务器并在 Google Colab 平台上部署 HuggingFace 模型 MultiGPU && Multi Instance Config 追加 instance_group [{count: 4kind: KIND_GPUgpus: [ 0, 1 ]} ]Python Backend Triton 会根据配置信息启动四个实例&#xff0c;…

物联网数据服务平台

随着物联网技术的迅猛发展&#xff0c;海量数据的产生和应用成为推动工业数字化转型的核心动力。在这个数据为王的时代&#xff0c;如何高效地收集、处理、分析并应用这些数据&#xff0c;成为了企业关注的焦点。物联网数据服务平台应运而生&#xff0c;为企业提供了全面、高效…

CLR学习

视频链接&#xff1a;《CLR十分钟》系列之CLR运行模型_哔哩哔哩_bilibili 什么是 CLR 公共语言运行时&#xff08;Common Language Runtime CLR&#xff09; 是一个可有多种编程语言使用的 运行时&#xff0c;CLR 的核心功能&#xff08;比如 内存管理&#xff0c;程序集加载…

Rust 练手小项目:猜数游戏

好久没写 Rust 了&#xff0c;参考《Rust 程序设计语言》写了一下猜数游戏。差不多 40 行&#xff0c;感觉写起来真舒服。 use rand::Rng; use std::{cmp::Ordering, io};fn main() {let secret_number rand::thread_rng().gen_range(0..100);println!("[*] Guess the n…

耐受强酸碱PFA试剂瓶高纯实验级进口聚四氟乙烯材质取样瓶

PFA取样瓶作为实验室中常备器皿耗材之一&#xff0c;主要用来盛放、储存和运输样品&#xff0c;根据使用条件不同&#xff0c;也可叫特氟龙试剂瓶、样品瓶、储样瓶、广口瓶、进样瓶等。广泛应用于半导体、新材料、多晶硅、硅材、微电子等行业。近年来随着新兴行业的快速发展&am…

methods 中配置的函数,不要用箭头函数?

在 Vue.js 中&#xff0c;确实不建议在 methods 中使用箭头函数。这是因为箭头函数在定义时会捕获其上下文的 this 值&#xff0c;并且不会重新绑定 this&#xff0c;而是继承自外部作用域的 this 值。这种行为与普通函数有所不同。 在 Vue 组件中&#xff0c;methods 中的函数…

【ARM 裸机】开发环境搭建

1、Ubuntu 和 Windows 文件互传 使用过程中&#xff0c;要频繁进行 Ubuntu 和 Windows 的文件互传&#xff0c;需要使用 FTP 服务&#xff1b; 1.1、开启 Ubuntu 下的 FTP 服务 //安装 FTP 服务 sudo apt-get install vsftpd //修改配置文件 sudo vi /etc/vsftpd.conf//重启…

XML(Extensible Markup Language 可扩展标记语言)

1、什么是XML XML 可扩展&#xff08;标签是自定义的&#xff09;标记语言&#xff0c;是一种用于编码文档的标记语言。广泛用于数据的存储和传输&#xff0c;如在配置文件中存储数据、在网络中传输。特别是当数据需要在不同的应用程序或系统之间进行交换时&#xff0c;XML 是…

某想主站的短信轰炸漏洞

很难想象主站居然还有这漏洞 某天的一个晚上&#xff0c;默默的打开了电脑&#xff0c;娴熟的打开了Burp suite, 看到一个很熟悉的注册登录页面&#xff0c;开始测试。 很难想象&#xff0c;还有验证码时效性&#xff0c;于是怼了半刻钟&#xff0c;终于让我逮到了他的数据包…

map.queryRenderedFeatures

map.queryRenderedFeatures是一个在地图库Mapbox GL JS中使用的方法&#xff0c;它用于查询在地图上渲染的特定要素。这个方法通常与地理空间查询一起使用&#xff0c;以找出在地图上的特定点、区域或者是其他的地理要素。 以下是一些使用map.queryRenderedFeatures的示例&…

TechTool Pro for Mac v19.0.3中文激活版 硬件监测和系统维护工具

TechTool Pro for Mac是一款专为Mac用户设计的强大系统维护和故障排除工具。它凭借全面的功能、高效的性能以及友好的操作界面&#xff0c;赢得了广大用户的信赖和好评。 软件下载&#xff1a;TechTool Pro for Mac v19.0.3中文激活版 作为一款专业的磁盘和系统维护工具&#x…

IDEA 设置类注释模板作者、日期、描述等信息(推荐标准!)

idea注释模版配置 idea作为越来越多程序员使用的开发工具&#xff0c;平时的代码注释也非常的关键&#xff0c;类上注释和方法上注释每次换电脑或者新同事入职都要统一修改&#xff0c;找了网上好多教程都写的乱七八糟的啥都有&#xff0c;为方便统一就自己写一个操作方法&…

开发过程中容易忽略的点之服务改造类

1.前言 本文主要介绍服务改造的三个方面&#xff1a;数据库、服务器、中间件 2.场景举例 某系统改造需要替换数据库&#xff0c;未关注字符集细节点差异&#xff0c;上线后数据库部分数据出现乱码问题。某系统报表SQL查询使用不常用TO_NCHAR&#xff0c;开发测试环境均正常&…

制氧机生产厂家如何确保氧气管道安全高效

制氧机作为生产氧气的关键设备&#xff0c;其安全性与高效性受到了广泛关注。作为制氧机生产厂家&#xff0c;确保氧气管道的安全高效运行&#xff0c;不仅是责任所在&#xff0c;更是对用户生命财产安全的有力保障。那么&#xff0c;制氧机生产厂家如何确保氧气管道安全高效生…

期货量化交易软件:MQL5 中的范畴论 (第 15 部分)函子与图论

概述 在上一篇文章中&#xff0c;我们目睹了前期文章中涵盖的概念&#xff08;如线性序&#xff09;如何视作范畴&#xff0c;以及为什么它们的“态射”在与其它范畴相关时即构成函子。在本文中&#xff0c;我们赫兹量化软件将阐述来自前期文章中的概括&#xff0c;即通过查看…