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分钟---
鸡翅的生熟度:烧焦了
调料有:酱油, 芝麻
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。