上一篇:函数案例讲解 | 手把手教你入门Python之五十五
下一篇:Python的内置属性 | 手把手教你入门Python之五十七
本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。
面向对象练习
房子(House)有户型、总面积、剩余面积 和 家具名称列表 属性
新房子没有任何的家具
将 家具的名称 追加到 家具名称列表 中
判断 家具的面积 是否 超过剩余面积,如果超过,提示不能添加这件家具
家具(Furniture)有 名字 和 占地面积属性,其中
席梦思(bed)占地 4 平米
衣柜(chest)占地 2 平米
餐桌(table)占地 1.5 平米
将以上三件 家具 添加到 房子 中
打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
class House(object):
# 缺省参数
def __init__(self,house_type, total_area, fru_list=None):
if fru_list is None: # 如果这个值是None
fru_list = [] # 将fru_list设置为空列表
self.house_type = house_type
self.total_area = total_area
self.free_area = total_area * 0.6
self.fru_list = fru_list
def add_fru(self, x):
if self.free_area < x.area:
print('剩余面积不足,放不进去了')
else:
self.fru_list.append(x.name)
self.free_area -= x.area
def __str__(self):
return '户型={}, 总面积={}, 剩余面积={}, 家具列表={}'.format(self.house_type, self.total_area, self.free_area, self.fru_list)
class Furniture(object):
def __init__(self, name, area):
self.name = name
self.area = area
# 创建房间对象的时候,传入户型和总面积
house = House('一室一厅', 20)
bed = Furniture('席梦思', 4)
chest = Furniture('衣柜', 2)
table = Furinture('餐桌', 1.5)
sofa = Furinture('沙发', 10)
# 把家具添加到房间里(面向对象关注点:让谁做)
house.add_fru(sofa)
house.add_fru(bed)
house.add_fru(chest)
house.add_fru(table)
print(house)
执行结果: