# 需求: 将不同的家具放入房子中
class Home:
“”“房子类”“”
def init(self, address, area):
self.address = address # 房子的地址
self.area = area # 房子的面积
self.items = [] # 记录房子中所有的家具(对象)
self.free_area = area # 剩余面积
def __str__(self):
# 房子在:%s, 面积为%d, 家具有: 双人床,冰箱
result_str = "房子在:%s, 面积为%d, 剩余面积为%d" % (self.address, self.area, self.free_area)
# 判断是否有家具
if len(self.items) > 0: # 有家具
result_str += ",包含的家具有:"
# 取出每个家具的名称并拼接
for item in self.items:
result_str += item.name + ","
result_str = result_str.rstrip(",")
return result_str
def add_item(self, item):
"""添加家具"""
# 先判断房子能否容纳该家具
result_area = self.free_area - item.area
if result_area >= 0:
self.items.append(item)
self.free_area -= item.area # 加入家具,相应的剩余面积需要减少
else:
print("房子剩余面积不足,无法容纳该家具")
class Item:
“”“家具类”“”
def init(self, name, area):
self.name = name # 家具的类型
self.area = area # 家具占用的面积
self.color = “黑”
def __str__(self):
return "家具:%s, 占用面积:%d" % (self.name, self.area)
# 创建房子
fangzi1 = Home("北京市盘古大观", 200)
print(fangzi1)
# 创建家具
item1 = Item("双人床", 4)
print(item1)
# 将家具放入房子中
fangzi1.add_item(item1)
print(fangzi1)
# 再添加一个家具
item2 = Item("冰箱", 1)
print(item2)
fangzi1.add_item(item2)
print(fangzi1)
# 再添加一个家具
item3 = Item("篮球场", 420)
print(item3)
fangzi1.add_item(item3)
print(fangzi1)