python類的封裝demo

2021-09-18 07:04:36 字數 1716 閱讀 3426

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...