1 # 1.抽象類 2 # 房子類,傢俱類 3 # 2分析房子的成員 4 # 屬性:房子的面積,傢俱列表 5 # 方法:存放傢俱的方法 6 7 # 3.分析傢俱的屬性 8 # 傢俱的屬性:名稱,面積 9 10 #定義房子類 11 class Home(object): 12 # 提供方法給建立好的對象提供屬性 13 def __init__(self,area): 14 # 房子的面積 15 self.area=area 16 # 傢俱列表 17 self.furniture_list=list() 18 19 def save_furniture(self,current_furniture): 20 if self.area>current_furniture.area: 21 # 把傢俱添加到傢俱列表 22 self.furniture_list.append(current_furniture) 23 # 添加後須要修改房子的面積 24 self.area-=current_furniture.area 25 print("傢俱添加成功,名字",current_furniture.name) 26 else: 27 print("對不起,房子面積不夠用,沒法添加該傢俱") 28 29 def __str__(self): 30 # 判斷傢俱列表裏面是否有傢俱 31 if self.furniture_list: 32 # print(self.furniture_list) 33 new_list=[furniture.name for furniture in self.furniture_list] 34 new_str=",".join(new_list) 35 return "房子的當前面積爲:%.2f 傢俱備:%s" %(self.area,new_str) 36 else: 37 # 沒有傢俱 38 return "房子的面積爲: %.2f" % self.area 39 class Furniture(object): 40 def __init__(self,name,area): 41 # 傢俱的名稱 42 self.name=name 43 # 傢俱的面積 44 self.area=area 45 46 def __str__(self): 47 return "傢俱的名稱:%s 傢俱的面積:%.2f" %(self.name,self.area) 48 49 h=Home(200) 50 print(h) 51 # 建立傢俱對象 52 bed = Furniture("雙人牀", 4) 53 print(bed) 54 h.save_furniture(bed) 55 print(h) 56 57 tv=Furniture("電視機",5) 58 print(tv) 59 h.save_furniture(tv) 60 print(h)