python 面对对象之结合类--设计4S店铺

前置:python3 ,需要提前了解对象、属性、方法的互相调用

该文章看不懂可以跳转:python 类对象、类属性、类方法和实例对象、实例属性、实例方法的互相调用,重点难点讲解

链接:https://blog.csdn.net/doris_9800/article/details/105106705

需求:请设计4s店铺功能,可以下单,然后仓库提车,然后可以试驾。

 

步骤1:先把基本框架搭建出来,需要哪些类啊?

#创建类:4S店
class FourStore(object):
    def __init__(self):
        pass
    #新增:下单功能
    def order(self):
        pass
#创建类:取车仓库repository
class Rep(object):
    def select_car(self):
        if xx == '本田':
            return bentian()
#创建派生类:本田系列
class Bentian():
    def __str__(self):
        return ('祝贺您喜提---本田----')

步骤2:实现冒烟流程,完成下单

#创建类:4S店
class FourStore(object):
    def __init__(self):
        self.rep=Rep()  #实现每次自动执行,指向仓库类,实现关联
    #新增:下单功能,order方法中,跨类引用了select_car方法
    def order(self,name):
        return self.rep.select_car(name)
#创建类:取车仓库repository
class Rep(object):
    def select_car(self,name):
        if name == '本田':
            return Bentian()
#创建派生类:本田系列
class Bentian:
    def __str__(self):
        return ('祝贺您喜提---本田----')

mycar=FourStore()
mycar2=mycar.order('本田') #调用order实例方法
print(mycar2)

执行结果:

 

解释下执行思路,注释已经讲得很清楚了,如果还是不懂,说明你对“对象、属性、方法的互相调用” 不了解,回去复习吧!

 

步骤3:完善功能,添加多种车牌系列,以及试驾

#创建类:4S店
class FourStore(object):
    def __init__(self):
        self.rep=Rep()
    #新增:下单功能
    def order(self,name):
        return self.rep.select_car(name)


#创建类:取车仓库repository
class Rep(object):
    def select_car(self,name):
        if name == '本田':
            return Fengtian()
        elif name == '丰田':
            return Bentian()
        elif name == '大众':
            return Dazhong()


#创建车父类,赋予车的功能
class Car(object):
    def move(self):
        print("欢迎试驾,车正在行驶...")
    def music(self):
        print("播放车内音乐...")
    def stop(self):
        print("车已停止,试驾结束...")
#创建车类的子类:各种车系列
class Bentian(Car):
    def __str__(self):
        return ('祝贺您喜提---本田----')
class Fengtian(Car):
    def __str__(self):
        return ('祝贺您喜提---丰田----')
class Dazhong(Car):
    def __str__(self):
        return ('祝贺您喜提---大众----')


#开始执行
mycar=FourStore()
# car_values=input('请输入您要购买的车:')
# mycar2=mycar.order(car_values)
mycar2=mycar.order('丰田')  
print(mycar2)
mycar2.move()  #因为Fengtian()已经实例化后返回给mycar2了,然而Fengtian()继承了Car()的功能
mycar2.music()
mycar2.stop()

运行结果:

祝贺您喜提---本田----
欢迎试驾,车正在行驶...
播放车内音乐...
车已停止,试驾结束...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值