定义一个家具类,初始化属性、家具名称和家具占地面积;再定义一个 房子类,初始化属性、地理位置、房屋面积、剩余面积、家具列表;再定义显示对象信息的str_方法,用于输出对象状态;最后调用房子类将以上信息进行输出。python实现
时间: 2025-01-27 22:12:13 浏览: 35
为了实现这个需求,我们可以定义两个类:`Furniture` 和 `House`。首先,我们定义`Furniture` 类,表示家具,然后定义`House` 类,其中包含一个家具列表。下面是对应的Python代码实现:
```python
class Furniture:
def __init__(self, name, area):
"""
初始化家具类,包含名称和占地面积
"""
self.name = name
self.area = area
def __str__(self):
"""
定义str_方法,返回家具的信息
"""
return f"{self.name} - 占地面积: {self.area} 平方米"
class House:
def __init__(self, location, total_area, remaining_area):
"""
初始化房子类,包含位置、总面积和剩余可用面积
"""
self.location = location
self.total_area = total_area
self.remaining_area = remaining_area
self.furniture_list = []
def add_furniture(self, furniture):
"""
添加家具到家具列表
"""
self.furniture_list.append(furniture)
def __str__(self):
"""
定义str_方法,返回房子及其家具的信息
"""
occupied_area = sum([furniture.area for furniture in self.furniture_list])
return f"{self.location}\n总面积: {self.total_area} 平方米\n已占面积: {occupied_area} 平方米\n剩余面积: {self.remaining_area - occupied_area} 平方米\n家具:\n{', '.join(map(str, self.furniture_list))}"
# 示例
bed = Furniture('床', 2)
sofa = Furniture('沙发', 3)
house = House('北京市朝阳区', 60, 40)
house.add_furniture(bed)
house.add_furniture(sofa)
print(house)
```
在这个例子中,我们首先创建了`bed` 和 `sofa` 两个家具对象,并将它们添加到`house` 的家具列表中。然后通过`__str__` 方法输出房子及其家具的相关信息。
阅读全文
相关推荐







