需求python
75.0
公斤0.5
公斤1
公斤
編程
提示:在 對象的方法內部,是能夠 直接訪問對象的屬性 的!app
class Person: """人類""" def __init__(self, name, weight): self.name = name self.weight = weight def __str__(self): return "個人名字叫 %s 體重 %.2f 公斤" % (self.name, self.weight) def run(self): """跑步""" print("%s 愛跑步,跑步鍛鍊身體" % self.name) self.weight -= 0.5 def eat(self): """吃東西""" print("%s 是吃貨,吃完這頓再減肥" % self.name) self.weight += 1 xiaoming = Person("小明", 75) xiaoming.run() xiaoming.eat() xiaoming.eat() print(xiaoming)
需求spa
75.0
公斤45.0
公斤0.5
公斤1
公斤
3d
提示code
對象
需求blog
4
平米2
平米1.5
平米
開發
剩餘面積string
add_item
方法,向房間 添加傢俱 時,讓 剩餘面積 -= 傢俱面積思考:應該先開發哪個類?
答案 —— 傢俱類
class HouseItem: def __init__(self, name, area): """ :param name: 傢俱名稱 :param area: 佔地面積 """ self.name = name self.area = area def __str__(self): return "[%s] 佔地面積 %.2f" % (self.name, self.area) # 1. 建立傢俱 bed = HouseItem("席夢思", 4) chest = HouseItem("衣櫃", 2) table = HouseItem("餐桌", 1.5) print(bed) print(chest) print(table)
小結
__init__
和 __str__
兩個內置方法class House: def __init__(self, house_type, area): """ :param house_type: 戶型 :param area: 總面積 """ self.house_type = house_type self.area = area # 剩餘面積默認和總面積一致 self.free_area = area # 默認沒有任何的傢俱 self.item_list = [] def __str__(self): # Python 可以自動的將一對括號內部的代碼鏈接在一塊兒 return ("戶型:%s\n總面積:%.2f[剩餘:%.2f]\n傢俱:%s" % (self.house_type, self.area, self.free_area, self.item_list)) def add_item(self, item): print("要添加 %s" % item) ... # 2. 建立房子對象 my_home = House("兩室一廳", 60) my_home.add_item(bed) my_home.add_item(chest) my_home.add_item(table) print(my_home)
小結
__init__
和 __str__
兩個內置方法add_item
方法 準備添加傢俱add_item
方法,將 三件傢俱 以實參傳遞到 add_item
內部需求
def add_item(self, item): print("要添加 %s" % item) # 1. 判斷傢俱面積是否大於剩餘面積 if item.area > self.free_area: print("%s 的面積太大,不能添加到房子中" % item.name) return # 2. 將傢俱的名稱追加到名稱列表中 self.item_list.append(item.name) # 3. 計算剩餘面積 self.free_area -= item.area
add_item
方法 將傢俱添加到房子中