首页 > 其他分享 >面向对象综合应用--烤地瓜

面向对象综合应用--烤地瓜

时间:2022-11-21 23:55:27浏览次数:63  
标签:digua1 condiments -- self 地瓜 面向对象 调料 cook

1、需求

  需求主线:

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

      0-3分钟:生的

      3-5分钟:半生不熟

      5-8分钟:熟了

      超过8分钟:烤糊了

    2. 添加的调料

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

2、步骤分析

  需求涉及一个事物:地瓜,故案例涉及一个类:地瓜类。

  1. 定义类

    地瓜的属性

      被烤的时间

      地瓜的状态

      添加的调料

    地瓜的方法

        被烤

        用户根据意愿设定每次烤地瓜的时间

        判断地瓜被烤的总时间是在哪个区间,修改地瓜状态

      添加调料

        用户根据意愿设定添加的调料

        将用户添加的调料存储

    显示对象信息

  2. 创建对象,调用相关实例方法

3、代码实现

  1. 定义类

    烤地瓜属性

      定义地瓜初始化属性,后期根据程序推进更新实例属性。

# 1. 定义类:初始化属性、被烤和添加调料的方法,显示对象信息的str
class SweetPotato():
    def __init__(self):
        # 被烤的时间
        self.cook_time = 0
        # 烤的状态
        self.cook_state = '生的'
        # 调料列表
        self.condiments = []

  2. 定义烤地瓜方法

class SweetPotato():
    ......

    def cook(self, time):
        """烤地瓜方法"""
        # 1. 先计算地瓜整体烤过的时间
        self.cook_time += time
        # 2. 用整体烤过的时间再判断地瓜的状态
        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 = '烤糊了'

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

class SweetPotato():
    ......

    def __str__(self):
        return f'这个地瓜的被烤过的时间时{self.cook_time}, 状态是{self.cook_state}'

  4. 创建对象,测试实例属性的实例方法

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

digua1.cook(2)
print(digua1)

digua1.cook(2)
print(digua1)

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

class SweetPotato():
    ......

    def add_condiments(self, condiment):
        # 用户意愿的调料追加到调料列表
        self.condiments.append(condiment)

    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(2)
digua1.add_condiments('酱油')
print(digua1)

6. 全部代码

# 1. 定义类:初始化属性、被烤和添加调料的方法,显示对象信息的str
class SweetPotato():
    def __init__(self):
        # 被烤的时间
        self.cook_time = 0
        # 烤的状态
        self.cook_state = '生的'
        # 调料列表
        self.condiments = []

    def cook(self, time):
        """烤地瓜方法"""
        # 1. 先计算地瓜整体烤过的时间
        self.cook_time += time
        # 2. 用整体烤过的时间再判断地瓜的状态
        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, condiment):
        # 用户意愿的调料追加到调料列表
        self.condiments.append(condiment)

    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(2)
digua1.add_condiments('酱油')
print(digua1)

 

标签:digua1,condiments,--,self,地瓜,面向对象,调料,cook
From: https://www.cnblogs.com/yz-b/p/16913844.html

相关文章

  • 【云原生】Kubernetes(k8s)Calico 客户端工具 calicoctl
    目录一、概述二、calicoctl安装三、calicoctl简单使用1)认证信息配置2)查看IP资源池3)配置IP池4)IP资源池示例演示5)固定IP示例演示6)网络策略(NetworkPolicy)四、Kube-ip......
  • 在博客园随笔中插入3D分子模型
    技术背景博主对前端技术不甚了解,只是想在博客中直接展示一些已有的分子结构,而且需要是可以交互的。而我们了解到通过3Dmol这样的前端工具可以实现,通过在博客园随笔中直接......
  • 【crash courses of computer science】1-5
    01:早期的计算(1)算盘:手动计算器&&存储着当前的计算状态人们制造算盘是因为:社会的规模已经超出个人心算的能力计算机先驱CharlesBabbage说过:随着知识的增长和新工具......
  • 图的生成树及其简单应用
    OI-wiki图论部分有简单的东西,也有一些奇怪的算法。总结:学好Kruskal就对了.0.一点前置习题1.luoguP4047[JSOI2010]部落划分实际上就是Kruskal做最小生成树,......
  • 前端工程化 - 剖析npm的包管理机制
    导读现如今,前端开发的同学已经离不开 npm 这个包管理工具,其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区,理解其内部机制非常有利于加深我们对模块开发的理解、......
  • 20221121
    今天气死了~~~傻子~~~~自己说和两男同事一起回家,然后我老生气了,然后还问我为啥生气。真的有毒啊,后面打电话也问这个?我真的服了这个老六。不过,我也在想是不是我自己的问......
  • 39.组合总和
    给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有 不同组合 ,并以列表形式返回。你......
  • python几种解释器
    Python有好几种版本的解释器:CPython:官方版本的解释器。这个解释器是用C语言开发的,所以叫CPython。CPython是使用最广的Python解释器。我们通常说的、下载的、讨论的、......
  • .compareTo用法
    一.java中的compareto方法1.返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值String a1 = “a”;String a2 =......
  • python flask实战订餐系统微信小程序-59flask部署单进程启动服务
    欢迎关注原创Python微信订餐小程序课程视频Python实战量化交易理财系统​​python​​​​flask​​实战订餐系统微信小程序-60nginx+uwsgi实现多进程访问​​​B站配套......