Python面向对象:房子添加家具

需求:有一套一室一厅、55平米的房子要装修摆放家具,房子有户型、总面积、剩余面积,家具列表四个属性。家具有占地面积和名称两个属性,家具类的对象有:双人床占地4平米,桌子占地1.5平米,衣柜占地2.5平米。将以上家具添加到房子中。
根据需求先创建家具的类和对象:

class HouseItem:

    def __init__(self, name, area):
        self.name = name
        self.area = area

    def __str__(self):
        return "%s占地%.2f平米" % (self.name, self.area)

bed = HouseItem("双人床", 4)
table = HouseItem("桌子", 1.5)
chest = HouseItem("衣柜", 2.5)

print(bed)
print(table)
print(chest)

结果:
双人床占地4.00平米
桌子占地1.50平米
衣柜占地2.50平米

然后再创建房子来添加家具的对象:

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):
        return ("户型:%s\n总面积:%.2f【剩余面积:%.2f】\n家具:%s"
                % (self.house_type, self.area,
                   self.free_area, self.item_list))

    def add_item(self, item):
        print("要添加%s" % item)
        #判断家具面积是否大于剩余面积,若大于则提示不能添加
        if item.area > self.free_area:
            print("%s占地面积太大,无法添加到房子" % item.name)
            return
        #添加的家具追加到列表
        self.item_list.append(item.name)
        #剩余面积=剩余面积-家具面积
        self.free_area -= item.area

my_home = House("一室一厅", 55)
my_home.add_item(bed)
my_home.add_item(table)
my_home.add_item(chest)

print(my_home)

结果:
要添加双人床占地4.00平米
要添加桌子占地1.50平米
要添加衣柜占地2.50平米
户型:一室一厅
总面积:55.00【剩余面积:47.00】
家具:[‘双人床’, ‘桌子’, ‘衣柜’]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值