1. ⽬标 强化 ⾯向对象编程的设计能⼒,进⼀步理解类、属性、⽅法 的构建场景 ** 强化 对self的理解,⽅法中使⽤self 可以获取和修改属性 2. 需求说明
烤地⽠规则: 1. 地⽠有⾃⼰的状态,默认是⽣的,地⽠可以进⾏烧烤 2. 地⽠有⾃⼰烧烤的总时间,由每次烧烤的时间累加得出 3. 地⽠烧烤时,需要提供本次烧烤的时间 4. 地⽠烧烤时,地⽠状态随着烧烤总时间的变化⽽改变:[0, 3) ⽣的、[3, 6) 半⽣不熟、[6, 8) 熟了、>=8 烤糊了 5. 输出地⽠信息时,可以显示地⽠的状态和烧烤的总时间 3. ⾯向对象设计 类图 3.1 地⽠类 1. 使⽤ SweetPotato 类可以创建 地⽠对象 2. 地⽠有两个属性: 状态 state:字符串 烧烤总时间 cooked_time:整数 3. 定义 cook ⽅法, 提供参数 time 设置 本次烧烤的时间 使⽤ 本次烧烤时间 对 烧烤总时间 进⾏累加 根据 烧烤总时间, 设置地⽠的状态: [0, 3) -> ⽣的 [3, 6) -> 半⽣不熟 [6, 8) -> 熟了 ⼤于等于8 -> 烤糊了 3.2 主程序逻辑 1. 创建地⽠对象 2. 分多次烧烤地⽠ 3. 每烧烤⼀次,输出地⽠信息 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) 4.2 定义"烤地⽠"⽅法 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
|