搬家具规则
家具
- 家具分不同的类型,并占用不同的面积
- 输出家具信息时,显示家具的类型和家具占用的面积
房子
- 房子有自己的地址和占用的面积
- 房子可以添加家具
- 如果房子的剩余面积可以容纳家具,提示家具添加成功;
- 否则提示添加失败
- 输出房子信息时,可以显示房子的地址、占地面积、剩余面积
- 查看房子中所有的家具
类的设计
可以提取两个类:家具类Item
和房子类House
每个类具备的属性和方法如下:
家具类
1.使用 Item 类可以创建 家具对象
2.家具有两个属性:
家具类型 type:字符串
家具面积 area:整数
3.实现__str__方法
4.显示家具的 type 和 area 属性
房子类
1.使用 House 类可以创建 房子对象
2.房子有四个属性:
地址 address:字符串
房子面积 area:整数
房子剩余面积 free_area:整数,默认为房子的面积
家具列表 items:列表
3.实现__str__方法
显示房子的 address 、area、free_area 属性
4.实现add_item方法,提供item参数来添加家具
如果 可以容纳家具:
家具 加入 item属性
剩余面积 减少
如果 不能容纳家具: 提示家具添加失败
主程序逻辑
```
- 创建 家具对象, 输出 家具信息
- 创建 房子对象, 输出 房子信息
-
代码实现
```python “””————————— Item家具类 —————————“”” class Item: def init(self, type, area):
'''
创建家具类的初始化方法
:param type: 家具类型
:param area: 家具面积
'''
self.type = type
self.area = area
def str(self):
return ‘str家具类型: {},家具占用面积: {}’.format(self.type, self.area)
def repr(self):
return 'repr家具类型: {},家具占用面积: {}'.format(self.type, self.area)
“””————————— House房子类 —————————“”” class House: def init(self, address, area): ‘’’ 房子的初始化方法 :param address: 房子地址 :param area: 房子面积 ‘’’ self.address = address self.area = area
# 剩余面积
self.free_area = self.area
# 家具列表
self.items = []
def __str__(self):
return '房子地址: {},占地面积: {},剩余面积: {}'.format(self.address, self.area, self.free_area)
def add_item(self, item):
"""
添加家具到房子中
:param item: 家具类Item的实例
:return:
"""
if self.free_area >= item.area:
# 家具添加到列表中
self.items.append(item)
# 修改剩余面积
self.free_area -= item.area
# 可以添加
print('添加成功')
else:
# 不能添加
print('面积不足, 不能添加家具')
创建家具
item1 = Item(‘桌子’, 40) item2 = Item(‘椅子’, 10) item3 = Item(‘家庭影院’, 80) print(item1) print(item2) print(item3)
创建房子
house = House(‘深圳湾一号’, 100)
打印家具
print(house)
print(“——————————————————————-“)
添加家具
house.add_item(item1) house.add_item(item2) house.add_item(item3) print(house) print(“所有家具: “, house.items) ``` 扩展: :::success
__str__
方法返回一个友好的、可读性较高的字符串,主要用于用户可见的输出,强调可读性和易理解性。常用于直接print
对象。__repr__
方法返回一个准确和详细的字符串,主要用于开发和调试过程中,强调准确性和完整性。常用于打印list
、set
、dict
等内部的所有对象 :::