Python例子

Python例子-面向对象(烤地瓜)

目标:

强化面向对象编程的设计能力,进一步理解类、属性、方法的构建场景

强化对self的理解,方法中使用self可以获取和修改属性

烤地瓜规则:

1.地瓜有自己的状态,默认是生的,地瓜可以进行烧烤

2地瓜有自己烧烤的总时间,由每次烧烤的时间累加得出

3.地瓜烧烤时,需要提供本次烧烤的时间

4.地瓜烧烤时,地瓜状态随着烧烤总时间的变化而改变: [0, 3)生的、[3, 6)半生不熟、[6, 8)熟了、>=8烤糊了

5.输出地瓜信息时,可以显示地瓜的状态和烧烤的总时间

# 新型一个新型类SweetPotato
class SweetPotato(object):
    '''
    烤地瓜的文档说明内容
    '''
    # 初始化属性CookeLevel(一共烤的时间),CookedString(地瓜状态),Condiments(调料列表)
    def __init__(self):
        self.CookedLevel = 0
        self.CookedString = '生的'
        self.Condiments = []
    # 烤地瓜的方法
    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 add_condiments(self,condiments):
        self.Condiments.append(condiments)
    # print的输出信息
    def __str__(self):
        if len(self.Condiments) > 0:
            str_Condiments = ','.join(self.Condiments)
            return '地瓜烤了%d分钟,%s,调料是%s' % (self.CookedLevel,self.CookedString,str_Condiments)
        else:
            return '地瓜烤了%d分钟,%s,没有调料' % (self.CookedLevel, self.CookedString)

print(SweetPotato.__doc__) # 查看类的文档说明:烤地瓜的文档说明
mysweetpotao = SweetPotato() # 实例化一个对象
mysweetpotao.cook(2)
print(mysweetpotao) # 地瓜烤了2分钟,生的,没有调料

mysweetpotao.cook(2)
mysweetpotao.add_condiments('番茄酱')
print(mysweetpotao)# 地瓜烤了4分钟,烤的半生不熟,调料是番茄酱

mysweetpotao.cook(4)
mysweetpotao.add_condiments('辣椒酱')
print(mysweetpotao) # 地瓜烤了8分钟,烤好了,调料是番茄酱,辣椒酱

mysweetpotao.cook(2)
mysweetpotao.add_condiments('芥末')
print(mysweetpotao) #地瓜烤了10分钟,烤糊了,调料是番茄酱,辣椒酱,芥末


最后修改:2020年3月2日 00:56