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

需求分析

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

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

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

  • 0-3分钟:生的
  • 3-5分钟:半生不熟
  • 5-8分钟:熟了
  • 大于8分钟:焦了
python面向对象应用案例:烧鸡翅_第1张图片
烧鸡翅

代码实现如下:

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分钟---
鸡翅的生熟度:烧焦了
调料有:酱油, 芝麻

你可能感兴趣的:(python面向对象应用案例:烧鸡翅)