上一篇: 函數案例講解 | 手把手教你入門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)
執行結果:
