python类的封装demo

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 = house_type
        self.area = area
        # 剩余面积
        self.free_area = area
        # 家具名称列表
        self.item_list = []

    def __str__(self):
        return ("户型是%s\n 总面积%.2f \n空闲面积%.2f \n存在的家具有%s" %
                (self.house, 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)
            return
        # 2. 将家具的名称添加到列表
        else:
            self.item_list.append(item.name)
        # 3. 计算剩余面积
        self.free_area -= item.area


# 1.创建家具
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("桌子", 3.5)
table1=HouseItem ("超大桌子",62)
# 2.创建房子对象
my_home = House("两室一厅", 60)

my_home.add_item(table1)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)

print(my_home)

运行结果

要添加超大桌子 占用面积62.00平方米
超大桌子 占用面积62.00平方米 的面积大于剩余面积,不能添加
要添加席梦思 占用面积4.00平方米
要添加衣柜 占用面积2.00平方米
要添加桌子 占用面积3.50平方米
户型是两室一厅
 总面积60.00 
空闲面积50.50 
存在的家具有['席梦思', '衣柜', '桌子']

主程序只负责创建

房子对象

家具对象

让房子对象调用add item 方法
将家具添加到房子中
面积计算 剩余面积 家具列表等处理 都被封装到房子类的内部

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值