強化 ⾯ 向物件程式設計的設計能 ⼒ ,進 ⼀ 步理解類、屬性、 ⽅ 法 的構建場景 ** 強化 對self的理解, ⽅ 法中使 ⽤ self 可以獲取和修改屬性 2. 需求說明
1. 地 ⽠ 有 ⾃⼰ 的狀態,預設是 ⽣ 的,地 ⽠ 可以進 ⾏ 燒烤 2. 地 ⽠ 有 ⾃⼰ 燒烤的總時間,由每次燒烤的時間累加得出 4. 地 ⽠ 燒烤時,地 ⽠ 狀態隨著燒烤總時間的變化 ⽽ 改變:[0, 3) ⽣ 的、[3, 6) 半 ⽣ 不熟、[6, 8) 熟了、>=8 烤糊了 5. 輸出地 ⽠ 資訊時,可以顯示地 ⽠ 的狀態和燒烤的總時間 類圖 1. 使 ⽤ SweetPotato 類可以建立 地 ⽠ 物件 狀態 state:字串 燒烤總時間 cooked_time:整數 3. 定義 cook ⽅ 法, 提供引數 time 設定 本次燒烤的時間 [6, 8) -> 熟了 3.2 主程式邏輯 4. 程式碼實現 4.1 定義地 ⽠ 類,並且定義 init () 和 str () ⽅ 法 class SweetPotato:# 定 義 類 """地⽠類""" definit (self): self.cooked_state = "⽣的"# 地⽠狀態 self.cooked_time = 0 # 燒烤總時間
defstr (self): return "地⽠狀態:%s, 燒烤總時間:%d" % ( self.cooked_state, self.cooked_time)
defcook(self,time): """燒烤""" # 本次燒烤時間累加到燒烤總時間中 self.cooked_time += time # 根據燒烤總時間改變地⽠的狀態 if self.cooked_time >= 0 and self.cooked_time< 3: self.cooked_state = "⽣的" elif self.cooked_time >= 3 and self.cooked_time< 6: self.cooked_state = "半⽣不熟" elif self.cooked_time >= 6 and self.cooked_time< 8: self.cooked_state = "熟了" else: self.cooked_state = "烤糊了" 物件 ⽅ 法中可以使 ⽤ self修改、獲取物件屬性,如 cook ⽅ 法中使 ⽤ self 修改了 cooked_time 和 cooked_state 屬 性 4.3 測試程式碼 把上 ⾯ 2塊程式碼合併為 ⼀ 個程式後,在程式碼的下 ⾯ 新增以下程式碼進 ⾏ 測試 # 建立物件 digua1 =SweetPotato() digua1.cook(1) print(digua1) # 地⽠狀態:⽣的,燒烤總時間:1 digua1.cook(2) print(digua1) # 地⽠狀態:半⽣不熟, 燒烤總時間:3 digua1.cook(3) print(digua1) # 地⽠狀態:熟了, 燒烤總時間:6 digua1.cook(3) print(digua1) # 地⽠狀態:烤糊了, 燒烤總時間:9 |