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 条评论
登录 后参与评论

相关文章

来自专栏Rindew的iOS技术分享

iOS地图找房(类似链家、安居客等地图找房)

1846
来自专栏陈满iOS

iOS动画专题·UIView二维形变动画与CAAnimation核心动画(transform动画,基础,关键帧,组动画,路径动画,贝塞尔曲线)

总的来说,从涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画...

1521
来自专栏zcqshine's blog

ajaxFileUpload+ThinkPHP+jqGrid 图片上传与显示

3014
来自专栏hrscy

自定义UITextView

自定义UITextView,带有placeholeder,可以设置placeholeder文字的大小和颜色。

712
来自专栏青玉伏案

iOS开发之微信聊天工具栏的封装

之前山寨了一个新浪微博(iOS开发之山寨版新浪微博小结),这几天就山寨个微信吧。之前已经把微信的视图结构简单的拖了一下(iOS开发之微信山寨版),今天就开始给微...

2068
来自专栏岑志军的专栏

iOS10新特性-自定义iMessage application

1453
来自专栏前端知识分享

第159天:前端知识体系框架

Web Components:http://css-tricks.com/modular-future-web-components//

813
来自专栏c#开发者

Easyui DataGrid DateRange Filter 漂亮实用的日期区间段筛选功能

自定义扩展Jquery easyui datagrid filter组件实现对日期类型区间段的筛选功能。显示效果如一下 ? 是不是非常实用 引用的jquery ...

3607
来自专栏青玉伏案

iOS开发之画图板(贝塞尔曲线)

  贝塞尔曲线,听着挺牛气一词,不过下面我们在做画图板的时候就用到贝塞尔绘直线,没用到绘制曲线的功能。如果会点PS的小伙伴会对贝塞尔曲线有更直观的理解。这篇博文...

20910
来自专栏用户2442861的专栏

PyQt QTableView嵌入QComboBox

  在Qt里,在QTableView中嵌入QComboBox真的很方便,只要实现一个QItemDelegate就可以了;QComboBox要想实现自定义下拉框...

561

扫码关注云+社区