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 = size
        self.price = price

class 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'}

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

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

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值