需求1.房子(House)有户型、总面积和家具名称列表 新房子没有任何家具 1.家具(HouseItem)有名字和占地面积,其中席梦思(bed)占地4平米衣柜(chest)占地2平米餐桌(table)占地1.5平米 1.将以上三件家具添加到房子中2.打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
时间: 2024-01-16 07:03:03 浏览: 83
好的,根据您的需求,我可以给出以下代码示例:
```
class HouseItem:
def __init__(self, name, area):
self.name = name
self.area = area
class House:
def __init__(self, house_type, total_area):
self.house_type = house_type
self.total_area = total_area
self.free_area = total_area
self.item_list = []
def add_item(self, item):
if item.area > self.free_area:
print(f"{item.name}的面积太大,无法添加到房间中!")
else:
self.item_list.append(item)
self.free_area -= item.area
print(f"成功添加{item.name}到房间中!")
def __str__(self):
return f"房屋户型为{self.house_type},总面积为{self.total_area}平米,剩余面积为{self.free_area}平米,家具有{[item.name for item in self.item_list]}。"
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)
my_house = House("三室一厅", 120)
my_house.add_item(bed)
my_house.add_item(chest)
my_house.add_item(table)
print(my_house)
```
输出结果为:
```
成功添加席梦思到房间中!
成功添加衣柜到房间中!
成功添加餐桌到房间中!
房屋户型为三室一厅,总面积为120平米,剩余面积为112.5平米,家具有['席梦思', '衣柜', '餐桌']。
```
这里通过定义 HouseItem 类来表示每个家具的名称和占地面积,House 类中有一个 add_item 方法,用来将家具添加到房间中,并且在添加时会进行剩余面积的计算。最后通过定义类的 __str__ 方法来输出房屋的信息。
阅读全文
相关推荐

















