python面向对象应用案例:烧鸡翅

需求分析

烧鸡翅的流程分解为:烧烤和加调料

用面向对象的方式来实现,必须定义鸡翅类,有以下属性:烧烤的时间,生熟程度,调味品。以及以下方法:烧烤,添加调料

烧烤时间与生熟时间的关联:

  • 0-3分钟:生的
  • 3-5分钟:半生不熟
  • 5-8分钟:熟了
  • 大于8分钟:焦了

烧鸡翅

代码实现如下:

class Wing():
    """烧鸡翅"""

    def __init__(self):
        print('----烧鸡翅,我最中意食-----')
        self.cookedLevel = 0  # 烧鸡翅的时间
        self.cookedString = '生的'  # 生熟程度
        self.condiments = []  # 调味
        print('刚买的鸡翅是生的,没有调料')

    def cook(self, time):
        self.cookedLevel += time
        if self.cookedLevel > 8:
            self.cookedString = '烧焦了'
        elif self.cookedLevel > 5:
            self.cookedString = '烧好了'
        elif self.cookedLevel > 3:
            self.cookedString = '半生不熟'
        else:
            self.cookedString = '生的'

    def addCondiments(self, condiments):
        print('---添加调料---')
        self.condiments.append(condiments)

    def __str__(self):
        print('----烧了%s分钟---' % self.cookedLevel)
        msg = '鸡翅的生熟度:' + self.cookedString
        if len(self.condiments) > 0:
            msg = msg + "\n调料有:"
            for temp in self.condiments:
                msg = msg + temp + ', '
            msg = msg.rstrip(', ')
        return msg


wing = Wing()

print('----开始烧鸡翅----')
wing.cook(4)
print(wing)

wing.addCondiments('酱油')

wing.cook(3)
print(wing)

wing.addCondiments('芝麻')
wing.cook(1)
print(wing)

wing.cook(2)
print(wing)

结果:

----烧鸡翅,我最中意食-----
刚买的鸡翅是生的,没有调料
----开始烧鸡翅----
----烧了4分钟---
鸡翅的生熟度:半生不熟
---添加调料---
----烧了7分钟---
鸡翅的生熟度:烧好了
调料有:酱油
---添加调料---
----烧了8分钟---
鸡翅的生熟度:烧好了
调料有:酱油, 芝麻
----烧了10分钟---
鸡翅的生熟度:烧焦了
调料有:酱油, 芝麻

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安智客

密码发展史之古典密码

密码(Cryptology)是一种用来混淆的技术,它希望将正常的、可识别的信息转变为无法识别的信息。密码学是一个即古老又新兴的学科,密码学一词源自希腊文“kry...

2307
来自专栏数据和云

Thinking in SQL系列之:供需分配问题

编辑手记:SQL做为一种编程语言,能够满足各类数据处理的需要,关键就在于算法与思维方式。以SQL会友,希望结交更多的数据库、数据分析领域的朋友。 推荐阅读: T...

3389
来自专栏生信技能树

了解5个乳腺癌表达数据集

这5个数据集都是以前的研究者发表的,它们 Mainz, Transbig, UPP, and UNT 数据集 分别对应的是: GSE11121,GSE7390,...

1354
来自专栏ml

HDUOJ-------Being a Good Boy in Spring Festival

Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Me...

39413
来自专栏数据结构与算法

BZOJ4668: 冷战(并查集)

• 1 u v, Reddington 需要知道 u 号军工厂及 v 号军工厂最早在加入第

762
来自专栏数据小魔方

这么牛X的包,一般人我不告诉他!!!

本文将给大家介绍一个ggplot2灰常牛X的可视化扩展包,我将该包主页的包用法介绍整理成中文,分享给大家。 包名叫geofacet,有经验的charter大概...

3345
来自专栏窗户

bc计算A股上市新股依次涨停股价

  几年的股市可谓惨不忍睹,不提也罢。唯有打新中签的时候,心里稍微有那么一点点的补偿,于是内心就YY可以30板吗,可以40板吗。于是就写了个连板的bc程序,每次...

1937
来自专栏GIS讲堂

教你如何拔取百度地图POI兴趣点

调用聚合数据,首先得注册聚合。聚合数据提供的百度地图POI的接口有三个:数据分类,查询数据和获取周边数据。想要获取百度POI兴趣点,涉及到的接口为数据分类,查询...

6084
来自专栏Python与爬虫

[资源分享]计算机科学速成课

推荐 程序员的你一定要看,不是程序员的也可以看看,我已经安利刚中考完的我妹妹看了(培养程序媛...)

1383
来自专栏大大的微笑

观察者模式详解

观察者模式是众多软件设计模式中的一种,又称发布订阅模式.被观察的对象发生了变化,观察者对象们可以第一时间收到通知, 并作出相应的处理,例如作为一家餐馆的会员...

22410

扫码关注云+社区