1. 搬家具规则
家具
- 家具分不同的类型,并占用不同的面积
- 输出家具信息时,显示家具的类型和家具占用的面积
房子
- 房子有自己的地址和占用的面积
- 房子可以添加家具
-
- 如果房子的剩余面积可以容纳家具,提示家具添加成功;
- 否则提示添加失败
- 输出房子信息时,可以显示房子的地址、占地面积、剩余面积
- 查看房子中所有的家具
2. 类的设计
可以提取两个类:家具类Item
和房子类House
3. 家具类
1.使用 Item 类可以创建 家具对象
2.家具有两个属性:
家具类型 type:字符串
家具面积 area:整数
3.实现__str__方法
4.显示家具的 type 和 area 属性
4. 房子类
1.使用 House 类可以创建 房子对象
2.房子有四个属性:
地址 address:字符串
房子面积 area:整数
房子剩余面积 free_area:整数,默认为房子的面积
家具列表 items:列表
3.实现__str__方法
显示房子的 address 、area、free_area 属性
4.实现add_item方法,提供item参数来添加家具
如果 可以容纳家具:
家具 加入 item属性
剩余面积 减少
如果 不能容纳家具: 提示家具添加失败
# 创建item类 创建家具对象
class Item:
# 添加属性
def __init__(self, type, area):
# 家具类型
self.type = type
# 家具面积
self.area = area
# 打印对象属性信息
def __str__(self):
return f"家具类型:{self.type} 家具面积:{self.area}"
# 创建House类 创建房子对象
class House:
# 添加属性
def __init__(self, address, area):
# 房子地址
self.address = address
# 房子总面子
self.area = area
# 房子剩余面积等于房子总面积
self.free_area = self.area
# 存放家具列表
self.items = []
def __init__(self, name):
self.name = name
# 添加家具方法
def add_item(self, item):
# 房子剩余面积大于等于家具面积 就可以添加
if self.free_area >= item.area:
# 将家具追加到家具列表
self.items.append(item)
# 剩余面积减去家具面积
self.free_area -= item.area
print("添加成功")
else:
print("不能容纳家具,添加失败")
# 打印对象属性的信息
def __str__(self):
return f'地址:{self.address},面积:{self.area},剩余面积:{self.free_area}'
# 创建家具对象
item1 = Item("床", 12)
item2 = Item("桌子", 5)
item3 = Item("衣柜", 1)
# 创建房子对象
house = House("江苏", 20)
# 添加家具到房子
house.add_item(item1)
house.add_item(item2)
house.add_item(item3)
# 打印信息
print(house)
# 查询房子所有的家具
print("家具列表:")
for i in house.items:
print(f"{i}")