强化 ⾯ 向对象编程的设计能 ⼒ ,进 ⼀ 步理解类、属性、 ⽅ 法 的构建场景 ** 强化 对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 |