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 方法
将家具添加到房子中
面积计算 剩余面积 家具列表等处理 都被封装到房子类的内部