2022-2-11 B-黑马程序员- 类与对象case
#类与对象——房子里放家具
class Item:
def __init__(self,name,area):
self.name=name
self.area=area
# print(f"{self.name} 的占地面积为 {self.area}")
def __str__(self):
return "[%s] 占地%.2f 平方 " %(self.name,self.area)
class House:
def __init__(self,type,area):
self.type=type
self.area=area
self.free_area=area
self.item_list=[]
def add_item(self,item):
#print(f"准备添加{item.name}")
#print(f"准备添加{item}")
#这里打印的特殊在于,准备添加item是个Item类对象,所以打印后,
#会把Item str方法中的内容也【接着】打印出来——有趣
print(f"准备添加{item}")
#如果剩余面积不足,就不能添加家具
if item.area>self.free_area:
print(f"空间不足,{item.name}添加失败")
return
self.item_list.append(item.name)
self.free_area-=item.area
# def __str__(self):
# return "这个 {self.type}面积有 {self.area}\n剩余{self.free_area} .家具有{self.item_list}"
def __str__(self):
return ("这个%s ,面积有 %.2f 平米,家具有%s,剩余%.2f 平米"
% (self.type,self.area,self.item_list,self.free_area))
myhouse=House("两室一厅",60)
print(myhouse)
bed=Item("席梦思",40)
closet=Item("衣柜",5)
desk=Item("桌子",20)
myhouse.add_item(bed)
myhouse.add_item(closet)
myhouse.add_item(desk)
print(myhouse)