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 = house_type
self.area = area
# 剩餘面積
self.free_area = area
# 家具名稱列表
self.item_list =
def__str__
(self)
:return
("戶型是%s\n 總面積%.2f \n空閒面積%.2f \n存在的家具有%s"
%(self.house, 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)
return
# 2. 將家具的名稱新增到列表
else
:# 3. 計算剩餘面積
self.free_area -= item.area
# 1.建立家具
bed = houseitem(
"席夢思",4
)chest = houseitem(
"衣櫃",2
)table = houseitem(
"桌子"
,3.5
)table1=houseitem (
"超大桌子",62
)# 2.建立房子物件
my_home = house(
"兩室一廳",60
)my_home.add_item(table1)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print
(my_home)
執行結果
要新增超大桌子 占用面積62.00平方公尺
超大桌子 占用面積62.00平方公尺 的面積大於剩餘面積,不能新增
要新增席夢思 占用面積4.00平方公尺
要新增衣櫃 占用面積2.00平方公尺
要新增桌子 占用面積3.50平方公尺
戶型是兩室一廳
總面積60.00
空閒面積50.50
存在的家具有['席夢思', '衣櫃', '桌子']
主程式只負責建立
讓房子物件呼叫add item 方法
將家具新增到房子中
面積計算 剩餘面積 家具列表等處理 都被封裝到房子類的內部
python類的封裝
廣義的封裝 例項化乙個物件,給物件空間封裝一些屬性.狹義的封裝 私有制.一 私有屬性 變數 私有靜態屬性,對於私有靜態屬性,類的內部可以訪問,對於私有靜態字段來說,只能在本類中內部訪問,類的外部,派生類均不可訪問.class b money 100000 class a b name alex ag...
Ajax的封裝及demo
html ajax的最基本封裝 將 get請求方式 和 post請求方式 封裝為兩個函式 function getajaxsend url cb post請求方式 要比get方式,多設定乙個請求頭 還要多設定乙個請求引數的資料 function postajaxsend url cb datastr...
python 測試類的封裝
1.嵌入測試 測試的資料與 嵌在一起寫在注釋中 from doctest import testmod def test func array 測試的輸入資訊寫在注釋中,表示輸入 輸出在下一行,呼叫testmod 會檢查輸入與注釋中的輸出是否相同 print test func 20,30,70 4...