python基础之面向对象(三))(实战:烤地瓜(SweetPotato))

一、分析“烤地瓜”的属性和方法

示例属性如下:

1
2
3
cookedLevel : 这是数字;0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时是生的
cookedString : 这是字符串;描述地瓜的生熟程度
condiments : 这是地瓜的配料列表,比如番茄酱、芥末酱等

示例方法如下:

1
2
3
4
cook() : 把地瓜烤一段时间
addCondiments() : 给地瓜添加配料
__init__() : 设置默认的属性
__str__() : 让print的结果看起来更好一些

二、定义类,并且定义__init__()方法

第一步:

复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
# 定义一个类
class SweetPotato:
    def __init__(self):# 初始化,描述地瓜生疏的程度
        self.cookedstring = "生的"    # 属性,表示地瓜的生熟程度,默认是生的
        self.cookedlevel = 0 # 记录地瓜生疏的程度
        #0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!
    # 烤地瓜
    def cook(self,cooked_time): #cooked_time表示时间长度
        if cooked_time >=0 and cooked_time<3:
            self.cookedstring = "地瓜生的"  # self.表示改的是对象的属性
        elif cooked_time >=3 and cooked_time<5:
            self.cookedstring = "地瓜半生不熟"
        elif cooked_time>=5 and cooked_time <8:
            self.cookedstring = "地瓜熟了"
        elif cooked_time >8:
            self.cookedstring = "地瓜烤糊了"
# 创建一个地瓜对象
di_gua = SweetPotato()
# 调用方法,开始烤地瓜
di_gua.cook(1)
print(di_gua) #  打印的内存地址
复制代码
1
执行结果-->><br><__main__.SweetPotato object at 0x000000E2665980F0>

第二步:

复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
# 定义一个类
class SweetPotato:
    def __init__(self):# 初始化,描述地瓜生疏的程度
        self.cookedstring = "生的"    # 属性,表示地瓜的生熟程度,默认是生的
        self.cookedlevel = 0 # 记录地瓜生疏的程度
        #0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!
    # 烤地瓜
    def cook(self,cooked_time): #cooked_time表示时间长度
        self.cookedlevel += cooked_time
        if self.cookedlevel >=0 and self.cookedlevel<3:
            self.cookedstring  = "地瓜生的"  # self.表示改的是对象的属性
        elif self.cookedlevel >=3 and self.cookedlevel<5:
            self.cookedstring = "地瓜半生不熟"
        elif self.cookedlevel >=5 and self.cookedlevel <8:
            self.cookedstring = "地瓜熟了"
        elif self.cookedlevel >8:
            self.cookedstring = "地瓜烤糊了"
    def __str__(self): # 定义str方法  ;return 返回什么就打印什么
        return "地瓜的状态:%s(%d)"%(self.cookedstring,self.cookedlevel) 
          # 表示查看烤的程度和时间 # 创建一个地瓜对象 di_gua = SweetPotato() print(di_gua) # 调用方法,开始烤地瓜 di_gua.cook(1) print(di_gua) di_gua.cook(1) print(di_gua) di_gua.cook(3) print(di_gua)
复制代码
1
2
3
4
执行结果-->><br>地瓜的状态:生的(0)
地瓜的状态:地瓜生的(1)
地瓜的状态:地瓜生的(2)
地瓜的状态:地瓜熟了(5)

三、给地瓜添加佐料

复制代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Renyz
# 定义一个类
class SweetPotato:
    def __init__(self):# 初始化,描述地瓜生疏的程度
        self.cookedstring = "生的"    # 属性,表示地瓜的生熟程度,默认是生的
        self.cookedlevel = 0 # 记录地瓜生疏的程度
        #0~3表示还是生的,超过3表示半生不熟,超过5表示已经烤好了,超过8表示已经烤成木炭了!
        self.condiments = [] # 属性
    # 烤地瓜
    def cook(self,cooked_time): #cooked_time表示时间长度
        self.cookedlevel += cooked_time
        if self.cookedlevel >= 0 and self.cookedlevel < 3:
            self.cookedstring = "地瓜生的"  # self.表示改的是对象的属性
        elif self.cookedlevel >= 3 and self.cookedlevel < 5:
            self.cookedstring = "地瓜半生不熟"
        elif self.cookedlevel >= 5 and self.cookedlevel < 8:
            self.cookedstring = "地瓜熟了"
        elif self.cookedlevel > 8:
            self.cookedstring = "地瓜烤糊了"
    def zouliao(self,items):    #定义添加佐料的函数
        self.condiments.append(items)# 第一个.表示属性,第二个.表示添加
    def __str__(self): # 定义str方法  ;return 返回什么就打印什么
        return "地瓜的状态:%s(%d),添加是佐料有%s"%(self.cookedstring,self.cookedlevel,str(self.condiments))
        # 表示查看烤的程度和时间
# 创建一个地瓜对象
di_gua = SweetPotato()
print(di_gua)
# 调用方法,开始烤地瓜
di_gua.cook(1)
print(di_gua)
di_gua.zouliao("槟榔")
di_gua.cook(1)
print(di_gua)
di_gua.zouliao("芥末")
di_gua.cook(1)
di_gua.zouliao("芥末")
print(di_gua)
复制代码
1
2
3
4
执行结果-->><br>地瓜的状态:生的(0),添加是佐料有[]
地瓜的状态:地瓜生的(1),添加是佐料有[]
地瓜的状态:地瓜生的(2),添加是佐料有['槟榔']
地瓜的状态:地瓜半生不熟(3),添加是佐料有['槟榔', '芥末', '芥末']

 

posted @   Wolf_Coder  阅读(524)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示