美文网首页Python
面向对象的案例(摆放家具)

面向对象的案例(摆放家具)

作者: 马路仔 | 来源:发表于2019-07-01 23:14 被阅读50次

    需求
    1.房子(House)有户型、总面积和家具名称列表
    新房子没有任何的家具

    2.家具(HouseItem)有名字和占地面积,其中
    席梦思(bed)占地4平米
    衣柜(chest)占地2平米
    餐桌(table)占地1.5平米

    3.将以上三件家具添加到房子中
    4.打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表

    HouseItem
    naem、area
    _ init_(self,name,area):、 _str _(self):
    HouseItem
    house_type、area、free_area、item_list
    _ init_(self,house_type,area):、 _str _(self):、 add_item(self,item)

    剩余面积
    1、在创建房子对象时,定义一个 剩余面积的属性、初始值和总面积相等
    2、当调用 add_item() 方法,向房间添加家具时,让剩余面积 -= 家具面积

    思考应该先开发哪一类?
    应该先家具类
    1.家具简单
    2.房子要使用到家具,被使用的类,通常应该先开发

    class HouseItem:
        def __init__(self, name, area):
            self.name = name
            self.area = area
        def __str__(self):
            return "[%s] 占地 %.2f" % (self.name,self.area)
    
    
    class House:
    
        def __init__(self, house_type, area):
            self.house_type = house_type
            self.area = area
    
            #剩余面积
            self.free_area = area
    
            #家具名称列表
            self.item_list = []
    
        def __str__(self):
            #Python 能够自动的将一对括号内部的代码连接在一起
            return ("户型:%s\n总面积:%.2f[剩余:%2.f]\n家具:%s"
                    %(self.house_type,self.area,
                      self.free_area,self.item_list))
    
        def add_item(self,item):
            print("要添加 %s" % item)
            #1.判断家具的面积
            if item.area > self.free_area:
                print("%s 的面积太大了,无法添加" % item.name)
    
                return
    
            #2.将家具的名称添加到列表中
            self.item_list.append(item.name)
    
            #3.计算剩余面积
            self.free_area -= item.area
    
    
    
    #1.创建家具
    bed = HouseItem("席梦思",40)
    chest =HouseItem("衣柜",2)
    table = HouseItem("餐桌",4)
    
    print(bed)
    print(chest)
    print(table)
    
    #2.创建房子对象
    my_home = House("两室一厅", 60)
    
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    print(my_home)
    

    运行结果


    image.png

    相关文章

      网友评论

        本文标题:面向对象的案例(摆放家具)

        本文链接:https://www.haomeiwen.com/subject/bnsocctx.html