python 面向对象:2 烤地瓜应用

综合应用

1 烤地瓜应用

1.1 需求

需求主线:

我们可以通过时间和地瓜的状态来定义这就是他的两个关键点,而两者之间又有依赖关系,时间控制状态发生的变化,所以我在下面也洗了相关的时间节点和对应的地瓜状态

  1. 被烤的时间和对应的地瓜状态

    0-3分钟: 生的

    3-5分钟:半生不熟

    5-8分钟: 熟的

    超过8分钟: 烤糊了

  2. 添加的调料:

    用户可以按自己的意愿添加调料

1.2 步骤分析

需求涉及一个事物: 地瓜

例涉及一个类,如这里的:地瓜类

所以第一步:将地瓜分类

第二步:通过地瓜类创建一个对象

1.2.1 定义类

  • 地瓜的属性
    • 被烤的时间
    • 地瓜的状态
    • 添加的调料
  • 地瓜的方法(所以地瓜有两个实例方法)
    • 被烤
    • 用户根据意愿设定每次烤地瓜的时间
    • 判断地瓜被烤的总时间是在哪个区间,修改地瓜状态
    • 添加调料
    • 用户根据意愿设定添加的调料
    • 将用户添加的调料存储
  • 显示对象信息

2 代码实现

2.1 定义地瓜类初始化代码

# 1.定义类:初始化属性、被烤和添加调料的方法,显示对象信息的 str
class SweetPotato():
    # 定义初始化属性
    def __init__(self):
        # 被烤的时间,默认初始化为 0
        self.cook_time = 0

        # 地瓜状态,默认初始化为生
        self.cook_state = '生的'

        # 调料列表,可能会涉及到很多种调料,所以需要通过列表 list 来接收
        self.condiments = []

2.2 定义烤地瓜方法

    # 定义 cook 函数,self 为接收的实例,time 为需要烤的时间,从而得到地瓜的状态
    def cook(self,time):
        """烤地瓜的方法,通过烤地瓜的时间相加来判断烤地瓜的状态"""
        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 = '烤糊了'

2.3 定义添加调料方法,并调用该实例方法

    # 添加调料
    def add_condiments(self,condiments):
        # 追加 condiments 到实例调料列表中
        self.condiments.append(condiments)

2.4 书写 str 魔法方法,用于输出对象状态

    def __str__(self):
        return f'地瓜烤的时间:{self.cook_time},当前状态是{self.cook_state},已添加调料{self.condiments}'

3 创建实例用于测试

这里我通过调用 SweetPotato() 类,并赋值给 digua1 实例,通过调用 cook 方法定义烤的时间,和 add_condiments 方法来添加调料用于测试

# 2.创建对象并调用对应的实例方法
digua1 = SweetPotato()
print(digua1)

digua1.cook(2)
digua1.add_condiments('白砂糖')
print(digua1)

digua1.cook(3)
digua1.add_condiments('辣椒面')
print(digua1)
[14:53:39 root@dev py-demo]#/bin/python3 /root/py-demo/day-1/test.py
地瓜烤的时间:0,当前状态是生的,已添加调料[]
地瓜烤的时间:2,当前状态是生的,已添加调料['白砂糖']
地瓜烤的时间:5,当前状态是熟了,已添加调料['白砂糖', '辣椒面']

4 代码总览

# 1.定义类:初始化属性、被烤和添加调料的方法,显示对象信息的 str
class SweetPotato():
    # 定义初始化属性
    def __init__(self):
        # 被烤的时间,默认初始化为 0
        self.cook_time = 0

        # 地瓜状态,默认初始化为生
        self.cook_state = '生的'

        # 调料列表,可能会涉及到很多种调料,所以需要通过列表 list 来接收
        self.condiments = []

    # 定义 cook 函数,self 为接收的实例,time 为需要烤的时间,从而得到地瓜的状态
    def cook(self,time):
        """烤地瓜的方法,通过烤地瓜的时间相加来判断烤地瓜的状态"""
        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):
        # 追加 condiments 到实例调料列表中
        self.condiments.append(condiments)

    def __str__(self):
        return f'地瓜烤的时间:{self.cook_time},当前状态是{self.cook_state},已添加调料{self.condiments}'

# 2.创建对象并调用对应的实例方法
digua1 = SweetPotato()
print(digua1)

digua1.cook(2)
digua1.add_condiments('白砂糖')
print(digua1)

digua1.cook(3)
digua1.add_condiments('辣椒面')
print(digua1)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇