代码来自视频
需求
需求:
1.房子(house)有户型,总面积,家具列表
新房子没有任何家具
2.家具(Houseitem)有名字和占地面积,其中
**席梦思(bed)**占地,4平米
**衣柜(chest)**占地,2平米
餐桌(table)占地,1.5平米
3.将以上家具 添加到房子中
4.打印房子时要求输出:户型,总面积,剩余面积,家具名称列表
创建房子类和家具类,其中家具类被房子类使用,应该先创建。
家具类创建的对象(席梦思,衣柜,餐桌),传递到房子类的添加家具方法中作为实参
class Houseitem:
def __init__(self,name,area):
self.name=name
self.area=area
def __str__(self):
return "[%s]占地%.2f"%(self.name,self.area)
class house:
def __init__(self,house_type,area):
self.house_type=house_type
self.area=area
self.free_area=area
self.item_list=[]
def __str__(self):
# python能够自动将一对小括号内部的代码连接在一起
return ("户型:%s\n总面积:%.2f[剩余面积:%.2f]\n家具:%s"
%(self.house_type,self.area,
self.free_area,self.item_list))
def add_item(self,item):
print("要添加%s"% item)
# 1.判断家具面积
if item.area>self.free_area:
print("%s的面积太大了,无法添加到"%item.name)
return
# 2.将家具名称添加到家具列表中
self.item_list.append(item.name)
# 3.计算剩余面积
self.free_area=self.free_area-item.area
# self.free_area=self.area-item.area
# 1.创建家具对象
bed=Houseitem("席梦思",4)
chest=Houseitem("衣柜",2)
table=Houseitem("餐桌",1.5)
print(bed)
print(chest)
print(table)
# 2.创建房子对象
house_my=house("两室一厅",79)
print(house_my)
# 3.将家具添加到房子中
# 家具类创建的对象,传递到房子类的添加家具方法中作为实参
house_my.add_item(bed)
# print(house_my)
house_my.add_item(chest)
house_my.add_item(table)
print(house_my)