记录一下python 的学习教程 :建立 room_with_furniture.py这个脚本
创建 家具和房子两个类,模拟向房子中摆放家具
class HouseItem:
"""
家具类
"""
# 初始化方法:简化对象的创建
def __init__(self, name, area):
"""
初始化家具对象
:param name: 家具名称
:param area: 家具占地面积
"""
# self.属性 = 形参
self.name = name
self.area = area
# 内置方法__str__(self):简化对象的输出
def __str__(self):
"""
定义家具对象的字符串表示
:return: 家具的字符串信息
"""
# 这个方法需要注意必须要返回一个字符串
# .2f 表示在遇到小数的时候只保留2位小数
return "[%s] 占地面积是%.2f 平方米" % (self.name, self.area)
class House():
"""
房子类
"""
def __init__(self, house_type, area):
"""
初始化房子对象
:param house_type: 房子类型
:param area: 房子总面积
"""
self.house_type = house_type
self.area = area
# 剩余面积
self.free_area = area # 剩余面积初始值是总面积
# 家具名称列表
self.item_list = [] # 家具列表一开始是一个空列表
def __str__(self):
"""
定义房子对象的字符串表示
:return: 房子的字符串信息
"""
# python小技巧: Python能够自动的将一对括号内部的代码连接在一起不出错,因为代码过程所以这里用了小括号
return ("户型:%s\n总面积:%.2f [剩余面积:%.2f]\n家具:%s"
% (self.house_type, self.area,
self.free_area, self.item_list))
# 添加家具方法
def add_item(self, item:HouseItem):
"""
向房子中添加家具
:param item: 家具对象
"""
print("要添加%s" % item)
# 1.判断家具的面积
if item.area > self.free_area:
print("%s 的面积太大了,无法添加" % item.name)
return # return关键字可以返回结果也可以不返回结果,下方代码不会被执行
# 2. 将家具添加到家具列表中
self.item_list.append(item.name)
# 3. 计算剩余面积
self.free_area -= item.area
if __name__ == '__main__':
# 1. 创建家具对象
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2.5)
table = HouseItem("餐桌", 2)
print(bed)
print(chest)
print(table)
# 创建一个户型为'两室一厅',面积为60平方米的房屋实例
house = House("两室一厅", 60)
# 向房屋中添加家具
house.add_item(bed)
house.add_item(chest)
house.add_item(table)
# 打印房屋信息、家具列表以及剩余可用面积
print(house)
print(house.item_list)
print(house.free_area)
运行结果如下:
[席梦思] 占地面积是4.00 平方米
[衣柜] 占地面积是2.50 平方米
[餐桌] 占地面积是2.00 平方米
要添加[席梦思] 占地面积是4.00 平方米
要添加[衣柜] 占地面积是2.50 平方米
要添加[餐桌] 占地面积是2.00 平方米
户型:两室一厅
总面积:60.00 [剩余面积:51.50]
家具:['席梦思', '衣柜', '餐桌']
['席梦思', '衣柜', '餐桌']
51.5
1604

被折叠的 条评论
为什么被折叠?



