本文已参与「新人创作礼」活动,一起开启掘金创作之路。
综合应用案例
烤地瓜
需求
- 需求主线:
被烤的时间和对应地瓜状态:
0-3分钟:生的
3-5分钟:半生不熟
5-8分钟:嘎嘎香
超过八分钟:烤糊了
- 添加调料
用户可以按照自己的需求添加调料
步骤分析
需求涉及一个事物:地瓜
定义类
- 地瓜的属性
被烤的时间
地瓜的状态
添加的调料
- 地瓜的方法
被烤:用户根据意愿设定烤地瓜时间
判断地瓜被烤的总时间是那个区间,修改地瓜状态
添加调料:用户根据意愿设定添加的调料
将用户添加的调料存储
- 显示对象信息
代码实现
#定义类
class digua():
#初始化属性
#要有一个__init__魔法方法
def __init__(self):
#被烤的时间,一开始没有被烤时间是0
self.cook_time = 0
#地瓜状态,一开始没有被开地瓜状态是生的
self.cook_state = '生的'
#调料列表 没有添加就是空的
self.cook_condiments = []
#烤地瓜方法
def cook(self,time):
#计算地瓜烤的时间
#用烤的时间来判断地瓜状态
#为什么这有可加呢,在我们正常烤地瓜,判断地瓜是否烤熟了,就把地瓜拿出来看看有没有烤熟,没有烤熟再放回去,而这加作用就是,当前面烤的时间为3分钟,而中途被拿出来了,又重新放回去了,烤了两分钟,而加号的作用就是把前面的时间加上后面的时间才是地瓜真正被烤的时间3+2
self.cook_time += time
if 0 <= self.cook_time < 3 :
#生的
self.cook_state = '生的'
elif 3 <= self.cook_time < 5 :
#半生不熟
self.cook_state = '半生不熟'
elif 5 <= self.cook_time < 8:
#熟了
self.cook_state = '嘎嘎香的'
elif self.cook_time >= 8:
#烤糊了
self.cook_state = '烤糊了'
#地瓜调料
def add_condiments(self,condiments):
#把用户意愿的调料追加到调料列表
self.cook_condiments.append(condiments)
#设置一个str魔术方法,时时刻刻能观察到烤地瓜的时间和地瓜的状态
def __str__(self):
return f'这个地瓜烤了{self.cook_time}分钟,状态是{self.cook_state},调料有{self.cook_condiments}'
#创建对象,测试实例属性和实例方法
digua1=digua()
print(digua1)
digua1.cook(2)
digua1.add_condiments('辣椒面')
print(digua1)
digua1.cook(2)
digua1.add_condiments('酱油')
print(digua1)
digua1.cook(1)
digua1.add_condiments('盐')
print(digua1)
\